Showing
4 changed files
with
138 additions
and
4 deletions
src/components/materialDetail/index.vue
0 → 100644
| 1 | +<!-- | ||
| 2 | + * @Date: 2024-07-23 18:31:35 | ||
| 3 | + * @LastEditors: hookehuyr hookehuyr@gmail.com | ||
| 4 | + * @LastEditTime: 2024-07-24 11:00:42 | ||
| 5 | + * @FilePath: /temple_material_request/src/components/materialDetail/index.vue | ||
| 6 | + * @Description: 物资详情页面 | ||
| 7 | +--> | ||
| 8 | +<template> | ||
| 9 | + <div class="material-detail-page"> | ||
| 10 | + <van-popup | ||
| 11 | + v-model:show="showRight" | ||
| 12 | + position="right" | ||
| 13 | + closeable | ||
| 14 | + @close="onClose" | ||
| 15 | + :style="{ height: '100%', width: '100%' }" | ||
| 16 | + > | ||
| 17 | + <div style="margin-top: 3rem; background-color: white;"> | ||
| 18 | + <div style="display: flex; justify-content: center; align-items: center;"> | ||
| 19 | + <div style="padding: 2rem 5rem; padding-bottom: 2rem; border: 1px solid #F2EDE6; background-color: #FFFDF6; text-align: center;"> | ||
| 20 | + <van-image | ||
| 21 | + width="6rem" | ||
| 22 | + height="6rem" | ||
| 23 | + fit="contain" | ||
| 24 | + src="https://cdn.ipadbiz.cn/oa/pic/%E7%89%A9%E8%B5%84%E5%9B%BE@2x.png" | ||
| 25 | + /> | ||
| 26 | + <div style="color: #e0d0ba; margin-top: 1rem;">物资图正在整理中</div> | ||
| 27 | + </div> | ||
| 28 | + </div> | ||
| 29 | + <div style="text-align: center; font-weight: bold; color: #A67939; font-size: 1.15rem; margin: 1.5rem auto;">口袋义工服T恤(绿)</div> | ||
| 30 | + <div style="color: #1C1C1C; background-color: #F2F2F2; font-size: 1rem; font-weight: bold; padding: 0.5rem 1.5rem;">基本信息</div> | ||
| 31 | + <div style="padding: 1rem;"> | ||
| 32 | + <van-row style="margin-bottom: 0.5rem;"> | ||
| 33 | + <van-col span="8" style="color: #AFAFAF;">编码</van-col> | ||
| 34 | + <van-col span="16">XFZ0021004</van-col> | ||
| 35 | + </van-row> | ||
| 36 | + <van-row style="margin-bottom: 0.5rem;"> | ||
| 37 | + <van-col span="8" style="color: #AFAFAF;">规格</van-col> | ||
| 38 | + <van-col span="16">XXL</van-col> | ||
| 39 | + </van-row> | ||
| 40 | + <van-row style="margin-bottom: 0.5rem;"> | ||
| 41 | + <van-col span="8" style="color: #AFAFAF;">单位</van-col> | ||
| 42 | + <van-col span="16">件</van-col> | ||
| 43 | + </van-row> | ||
| 44 | + <van-row style="margin-bottom: 0.5rem;"> | ||
| 45 | + <van-col span="8" style="color: #AFAFAF;">分类</van-col> | ||
| 46 | + <van-col span="16">新服装</van-col> | ||
| 47 | + </van-row> | ||
| 48 | + <van-row style="margin-bottom: 0.5rem;"> | ||
| 49 | + <van-col span="8" style="color: #AFAFAF;">描述</van-col> | ||
| 50 | + <van-col span="16">/</van-col> | ||
| 51 | + </van-row> | ||
| 52 | + <van-row style="margin-bottom: 0.5rem;"> | ||
| 53 | + <van-col span="8" style="color: #AFAFAF;">条码</van-col> | ||
| 54 | + <van-col span="16">/</van-col> | ||
| 55 | + </van-row> | ||
| 56 | + <van-row style="margin-bottom: 0.5rem;"> | ||
| 57 | + <van-col span="8" style="color: #AFAFAF;">价格</van-col> | ||
| 58 | + <van-col span="16">/</van-col> | ||
| 59 | + </van-row> | ||
| 60 | + <van-row style="margin-bottom: 0.5rem;"> | ||
| 61 | + <van-col span="8" style="color: #AFAFAF;">是否可定</van-col> | ||
| 62 | + <van-col span="16">可定</van-col> | ||
| 63 | + </van-row> | ||
| 64 | + <van-row style="margin-bottom: 0.5rem;"> | ||
| 65 | + <van-col span="8" style="color: #AFAFAF;">状态</van-col> | ||
| 66 | + <van-col span="16">上架</van-col> | ||
| 67 | + </van-row> | ||
| 68 | + </div> | ||
| 69 | + </div> | ||
| 70 | + </van-popup> | ||
| 71 | + </div> | ||
| 72 | +</template> | ||
| 73 | + | ||
| 74 | +<script setup> | ||
| 75 | +import { ref } from 'vue' | ||
| 76 | +import { useRoute, useRouter } from 'vue-router' | ||
| 77 | + | ||
| 78 | +import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@/utils/generatePackage.js' | ||
| 79 | +//import { } from '@/utils/generateModules.js' | ||
| 80 | +//import { } from '@/utils/generateIcons.js' | ||
| 81 | +//import { } from '@/composables' | ||
| 82 | +const $route = useRoute(); | ||
| 83 | +const $router = useRouter(); | ||
| 84 | +useTitle($route.meta.title); | ||
| 85 | + | ||
| 86 | +const props = defineProps({ | ||
| 87 | + show: Boolean, | ||
| 88 | +}); | ||
| 89 | +const emit = defineEmits(['close']); | ||
| 90 | +const showRight = ref(false); | ||
| 91 | +const onClose = () => { | ||
| 92 | + emit('close'); | ||
| 93 | +} | ||
| 94 | + | ||
| 95 | +// 监听字段变化 | ||
| 96 | +watch( | ||
| 97 | + () => props.show, | ||
| 98 | + (v) => { | ||
| 99 | + showRight.value = v; | ||
| 100 | + } | ||
| 101 | +); | ||
| 102 | +</script> | ||
| 103 | + | ||
| 104 | +<style lang="less" scoped> | ||
| 105 | +.material-detail-page {} | ||
| 106 | +</style> |
| 1 | <!-- | 1 | <!-- |
| 2 | * @Date: 2024-07-23 10:50:38 | 2 | * @Date: 2024-07-23 10:50:38 |
| 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 4 | - * @LastEditTime: 2024-07-23 16:36:26 | 4 | + * @LastEditTime: 2024-07-24 11:04:16 |
| 5 | * @FilePath: /temple_material_request/src/views/material_list.vue | 5 | * @FilePath: /temple_material_request/src/views/material_list.vue |
| 6 | * @Description: 物资情况页面 | 6 | * @Description: 物资情况页面 |
| 7 | --> | 7 | --> |
| ... | @@ -39,6 +39,8 @@ | ... | @@ -39,6 +39,8 @@ |
| 39 | <van-button @click="onClickRequest" type="primary" block :color="styleColor.baseColor">我要申领</van-button> | 39 | <van-button @click="onClickRequest" type="primary" block :color="styleColor.baseColor">我要申领</van-button> |
| 40 | </div> | 40 | </div> |
| 41 | </div> | 41 | </div> |
| 42 | + | ||
| 43 | + <material-detail :show="show_material_detail" @close="onCloseDetail"></material-detail> | ||
| 42 | </template> | 44 | </template> |
| 43 | 45 | ||
| 44 | <script setup> | 46 | <script setup> |
| ... | @@ -50,6 +52,7 @@ import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@ | ... | @@ -50,6 +52,7 @@ import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@ |
| 50 | //import { } from '@/utils/generateIcons.js' | 52 | //import { } from '@/utils/generateIcons.js' |
| 51 | //import { } from '@/composables' | 53 | //import { } from '@/composables' |
| 52 | import { styleColor } from "@/constant.js"; | 54 | import { styleColor } from "@/constant.js"; |
| 55 | +import materialDetail from '@/components/materialDetail/index.vue'; | ||
| 53 | 56 | ||
| 54 | const $route = useRoute(); | 57 | const $route = useRoute(); |
| 55 | const $router = useRouter(); | 58 | const $router = useRouter(); |
| ... | @@ -84,6 +87,7 @@ const onLoad = () => { | ... | @@ -84,6 +87,7 @@ const onLoad = () => { |
| 84 | 87 | ||
| 85 | const onClickTitle = (item) => { // 点击物资标题回调 | 88 | const onClickTitle = (item) => { // 点击物资标题回调 |
| 86 | console.warn(item); | 89 | console.warn(item); |
| 90 | + show_material_detail.value = true; | ||
| 87 | } | 91 | } |
| 88 | 92 | ||
| 89 | const onClickRequest = () => { // 我要申领物资 | 93 | const onClickRequest = () => { // 我要申领物资 |
| ... | @@ -91,6 +95,11 @@ const onClickRequest = () => { // 我要申领物资 | ... | @@ -91,6 +95,11 @@ const onClickRequest = () => { // 我要申领物资 |
| 91 | path: '/material_request' | 95 | path: '/material_request' |
| 92 | }) | 96 | }) |
| 93 | } | 97 | } |
| 98 | + | ||
| 99 | +const show_material_detail = ref(false); | ||
| 100 | +const onCloseDetail = () => { | ||
| 101 | + show_material_detail.value = false; | ||
| 102 | +} | ||
| 94 | </script> | 103 | </script> |
| 95 | 104 | ||
| 96 | <style lang="less" scoped> | 105 | <style lang="less" scoped> | ... | ... |
| 1 | <!-- | 1 | <!-- |
| 2 | * @Date: 2024-07-23 12:53:15 | 2 | * @Date: 2024-07-23 12:53:15 |
| 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 4 | - * @LastEditTime: 2024-07-23 18:17:22 | 4 | + * @LastEditTime: 2024-07-23 18:27:27 |
| 5 | * @FilePath: /temple_material_request/src/views/material_pre_request.vue | 5 | * @FilePath: /temple_material_request/src/views/material_pre_request.vue |
| 6 | * @Description: 待申领物资页面 | 6 | * @Description: 待申领物资页面 |
| 7 | --> | 7 | --> |
| 8 | <template> | 8 | <template> |
| 9 | <div class="material-pre-request-page"> | 9 | <div class="material-pre-request-page"> |
| 10 | <div class="list-wrapper"> | 10 | <div class="list-wrapper"> |
| 11 | + <van-sticky> | ||
| 11 | <van-row justify="space-between" class="select-all-item"> | 12 | <van-row justify="space-between" class="select-all-item"> |
| 12 | <van-col span="8"> | 13 | <van-col span="8"> |
| 13 | <!-- TODO:编辑模式下,不能确认申请 --> | 14 | <!-- TODO:编辑模式下,不能确认申请 --> |
| ... | @@ -20,6 +21,7 @@ | ... | @@ -20,6 +21,7 @@ |
| 20 | <van-icon name="delete-o" /> 删除 | 21 | <van-icon name="delete-o" /> 删除 |
| 21 | </van-col> | 22 | </van-col> |
| 22 | </van-row> | 23 | </van-row> |
| 24 | + </van-sticky> | ||
| 23 | <van-list | 25 | <van-list |
| 24 | v-model:loading="loading" | 26 | v-model:loading="loading" |
| 25 | :finished="finished" | 27 | :finished="finished" |
| ... | @@ -85,6 +87,7 @@ | ... | @@ -85,6 +87,7 @@ |
| 85 | </van-dialog> | 87 | </van-dialog> |
| 86 | 88 | ||
| 87 | <choose-material :show="show_choose_material" @close="onCloseChoose"></choose-material> | 89 | <choose-material :show="show_choose_material" @close="onCloseChoose"></choose-material> |
| 90 | + <material-detail :show="show_material_detail" @close="onCloseDetail"></material-detail> | ||
| 88 | 91 | ||
| 89 | </template> | 92 | </template> |
| 90 | 93 | ||
| ... | @@ -99,7 +102,7 @@ import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@ | ... | @@ -99,7 +102,7 @@ import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@ |
| 99 | import { styleColor } from "@/constant.js"; | 102 | import { styleColor } from "@/constant.js"; |
| 100 | import dayjs from "dayjs"; | 103 | import dayjs from "dayjs"; |
| 101 | import chooseMaterial from '@/components/chooseMaterial/index.vue'; | 104 | import chooseMaterial from '@/components/chooseMaterial/index.vue'; |
| 102 | - | 105 | +import materialDetail from '@/components/materialDetail/index.vue'; |
| 103 | 106 | ||
| 104 | const $route = useRoute(); | 107 | const $route = useRoute(); |
| 105 | const $router = useRouter(); | 108 | const $router = useRouter(); |
| ... | @@ -131,6 +134,7 @@ const onLoad = () => { | ... | @@ -131,6 +134,7 @@ const onLoad = () => { |
| 131 | 134 | ||
| 132 | const onClickTitle = (item) => { // 点击物资标题回调 | 135 | const onClickTitle = (item) => { // 点击物资标题回调 |
| 133 | console.warn(item); | 136 | console.warn(item); |
| 137 | + show_material_detail.value = true; | ||
| 134 | } | 138 | } |
| 135 | 139 | ||
| 136 | const showPicker = ref(false); | 140 | const showPicker = ref(false); |
| ... | @@ -170,6 +174,11 @@ const show_choose_material = ref(false); | ... | @@ -170,6 +174,11 @@ const show_choose_material = ref(false); |
| 170 | const onCloseChoose = () => { | 174 | const onCloseChoose = () => { |
| 171 | show_choose_material.value = false; | 175 | show_choose_material.value = false; |
| 172 | } | 176 | } |
| 177 | + | ||
| 178 | +const show_material_detail = ref(false); | ||
| 179 | +const onCloseDetail = () => { | ||
| 180 | + show_material_detail.value = false; | ||
| 181 | +} | ||
| 173 | </script> | 182 | </script> |
| 174 | 183 | ||
| 175 | <style lang="less" scoped> | 184 | <style lang="less" scoped> |
| ... | @@ -179,6 +188,7 @@ const onCloseChoose = () => { | ... | @@ -179,6 +188,7 @@ const onCloseChoose = () => { |
| 179 | width: 100%; | 188 | width: 100%; |
| 180 | .select-all-item { | 189 | .select-all-item { |
| 181 | padding: 0.5rem 1rem; | 190 | padding: 0.5rem 1rem; |
| 191 | + background-color: white; | ||
| 182 | } | 192 | } |
| 183 | .list-boxer { | 193 | .list-boxer { |
| 184 | margin: 0; padding: 1rem; border-top: 1px solid #f0f0f0; | 194 | margin: 0; padding: 1rem; border-top: 1px solid #f0f0f0; | ... | ... |
| 1 | <!-- | 1 | <!-- |
| 2 | * @Date: 2024-07-23 12:53:15 | 2 | * @Date: 2024-07-23 12:53:15 |
| 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 4 | - * @LastEditTime: 2024-07-23 16:38:59 | 4 | + * @LastEditTime: 2024-07-24 11:05:03 |
| 5 | * @FilePath: /temple_material_request/src/views/material_request.vue | 5 | * @FilePath: /temple_material_request/src/views/material_request.vue |
| 6 | * @Description: 申领物资页面 | 6 | * @Description: 申领物资页面 |
| 7 | --> | 7 | --> |
| ... | @@ -54,6 +54,8 @@ | ... | @@ -54,6 +54,8 @@ |
| 54 | </div> | 54 | </div> |
| 55 | 55 | ||
| 56 | <choose-material :show="show_choose_material" @close="onCloseChoose"></choose-material> | 56 | <choose-material :show="show_choose_material" @close="onCloseChoose"></choose-material> |
| 57 | + <material-detail :show="show_material_detail" @close="onCloseDetail"></material-detail> | ||
| 58 | + | ||
| 57 | </template> | 59 | </template> |
| 58 | 60 | ||
| 59 | <script setup> | 61 | <script setup> |
| ... | @@ -66,6 +68,7 @@ import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@ | ... | @@ -66,6 +68,7 @@ import { Cookies, $, _, axios, storeToRefs, mainStore, Toast, useTitle } from '@ |
| 66 | //import { } from '@/composables' | 68 | //import { } from '@/composables' |
| 67 | import { styleColor } from "@/constant.js"; | 69 | import { styleColor } from "@/constant.js"; |
| 68 | import chooseMaterial from '@/components/chooseMaterial/index.vue'; | 70 | import chooseMaterial from '@/components/chooseMaterial/index.vue'; |
| 71 | +import materialDetail from '@/components/materialDetail/index.vue'; | ||
| 69 | 72 | ||
| 70 | const $route = useRoute(); | 73 | const $route = useRoute(); |
| 71 | const $router = useRouter(); | 74 | const $router = useRouter(); |
| ... | @@ -102,6 +105,7 @@ const onLoad = () => { | ... | @@ -102,6 +105,7 @@ const onLoad = () => { |
| 102 | 105 | ||
| 103 | const onClickTitle = (item) => { // 点击物资标题回调 | 106 | const onClickTitle = (item) => { // 点击物资标题回调 |
| 104 | console.warn(item); | 107 | console.warn(item); |
| 108 | + show_material_detail.value = true; | ||
| 105 | } | 109 | } |
| 106 | 110 | ||
| 107 | const addMore = () => { // 添加更多 | 111 | const addMore = () => { // 添加更多 |
| ... | @@ -122,6 +126,11 @@ const show_choose_material = ref(false); | ... | @@ -122,6 +126,11 @@ const show_choose_material = ref(false); |
| 122 | const onCloseChoose = () => { | 126 | const onCloseChoose = () => { |
| 123 | show_choose_material.value = false; | 127 | show_choose_material.value = false; |
| 124 | } | 128 | } |
| 129 | + | ||
| 130 | +const show_material_detail = ref(false); | ||
| 131 | +const onCloseDetail = () => { | ||
| 132 | + show_material_detail.value = false; | ||
| 133 | +} | ||
| 125 | </script> | 134 | </script> |
| 126 | 135 | ||
| 127 | <style lang="less" scoped> | 136 | <style lang="less" scoped> | ... | ... |
-
Please register or login to post a comment