From 0b9bcc404600dbb09681a62271a3c727a0e17a94 Mon Sep 17 00:00:00 2001 From: songyang <972986197@qq.com> Date: Wed, 13 Dec 2023 11:21:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AF=BB=E6=BA=90=E6=AF=94?= =?UTF-8?q?=E4=BB=B7=20=E4=BC=81=E4=B8=9A=E4=B8=93=E5=8C=BA=E7=AD=89?= =?UTF-8?q?=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components.d.ts | 19 ++ src/components/Navmenu/index.vue | 2 +- src/router/index.ts | 91 ++++- src/store/user.ts | 1 + src/views/home/index.vue | 3 +- src/views/parity/index.vue | 33 +- src/views/parity/parityCom/hall.vue | 56 +++ src/views/parity/parityCom/itemCard.vue | 36 ++ src/views/parity/parityCom/notice.vue | 36 ++ src/views/parity/parityCom/quotation.vue | 156 +++++++++ src/views/user/goodsManagement/index.vue | 377 ++++++++++++++------- src/views/user/index.vue | 25 +- src/views/user/orderManagement/index.vue | 4 +- src/views/user/orderManagementCz/index.vue | 5 +- src/views/user/sourcingBidding/index.vue | 56 +++ src/views/user/sourcingNeed/index.vue | 48 +++ src/views/user/zoneManag/index.vue | 47 +++ 17 files changed, 834 insertions(+), 161 deletions(-) create mode 100644 src/views/parity/parityCom/hall.vue create mode 100644 src/views/parity/parityCom/itemCard.vue create mode 100644 src/views/parity/parityCom/notice.vue create mode 100644 src/views/parity/parityCom/quotation.vue create mode 100644 src/views/user/sourcingBidding/index.vue create mode 100644 src/views/user/sourcingNeed/index.vue create mode 100644 src/views/user/zoneManag/index.vue diff --git a/components.d.ts b/components.d.ts index 5bbb12f..ace5036 100644 --- a/components.d.ts +++ b/components.d.ts @@ -7,9 +7,15 @@ export {} declare module 'vue' { export interface GlobalComponents { + ElButton: typeof import('element-plus/es')['ElButton'] ElCarousel: typeof import('element-plus/es')['ElCarousel'] ElCarouselItem: typeof import('element-plus/es')['ElCarouselItem'] + ElCascader: typeof import('element-plus/es')['ElCascader'] + ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] + ElCol: typeof import('element-plus/es')['ElCol'] ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider'] + ElDatePicker: typeof import('element-plus/es')['ElDatePicker'] + ElDialog: typeof import('element-plus/es')['ElDialog'] ElDropdown: typeof import('element-plus/es')['ElDropdown'] ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem'] ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu'] @@ -19,8 +25,21 @@ declare module 'vue' { ElIcon: typeof import('element-plus/es')['ElIcon'] ElImage: typeof import('element-plus/es')['ElImage'] ElInput: typeof import('element-plus/es')['ElInput'] + ElMenu: typeof import('element-plus/es')['ElMenu'] + ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] + ElOption: typeof import('element-plus/es')['ElOption'] ElPagination: typeof import('element-plus/es')['ElPagination'] + ElProgress: typeof import('element-plus/es')['ElProgress'] + ElRadioButton: typeof import('element-plus/es')['ElRadioButton'] + ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] + ElRow: typeof import('element-plus/es')['ElRow'] + ElSelect: typeof import('element-plus/es')['ElSelect'] + ElTable: typeof import('element-plus/es')['ElTable'] + ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] + ElTabPane: typeof import('element-plus/es')['ElTabPane'] + ElTabs: typeof import('element-plus/es')['ElTabs'] ElTag: typeof import('element-plus/es')['ElTag'] + ElUpload: typeof import('element-plus/es')['ElUpload'] EquipCard: typeof import('./src/components/equipCard.vue')['default'] EquipDetailTable: typeof import('./src/components/equipDetailTable.vue')['default'] FooterInfo: typeof import('./src/components/FooterInfo/index.vue')['default'] diff --git a/src/components/Navmenu/index.vue b/src/components/Navmenu/index.vue index 105fee9..f6eb8e9 100644 --- a/src/components/Navmenu/index.vue +++ b/src/components/Navmenu/index.vue @@ -22,7 +22,7 @@ v-for="item in navMenuList" :key="item.name" @click="navMenuClick(item.routerName)" - :class="{ active: route.name === item.routerName }"> + :class="{ active: route.meta.activeName === item.routerName }"> {{ item.name }} diff --git a/src/router/index.ts b/src/router/index.ts index 134249e..8a1bcbe 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -85,7 +85,8 @@ const routes: Array = [ meta: { title: '首页', keepAlive: true, - AuthFlag: false + AuthFlag: false, + activeName: 'home', }, }, // 自选直租 @@ -94,7 +95,8 @@ const routes: Array = [ name: 'equipList', component: () => import('views/equip/list.vue'), meta: { - title: '' + title: '', + activeName: 'equipList', } }, //装备详情 @@ -103,7 +105,7 @@ const routes: Array = [ name: 'equipDetail', component: () => import('views/equip/detail.vue'), meta: { - title: '' + title: '', } }, // 资讯详情 @@ -127,11 +129,49 @@ const routes: Array = [ path: '/parity', name: 'parity', meta: { - title: '寻源比较', + title: '寻源比价', isLogin: true, - AuthFlag: false + AuthFlag: false, + activeName: 'parity', }, - component: () => import('views/parity/index.vue') + redirect: '/parity/hall', + component: () => import('views/parity/index.vue'), + children: [ + { + path: 'hall', + name: 'hall', + meta: { + title: '寻源比价大厅', + isLogin: true, + AuthFlag: false, + activeName: 'parity', + }, + component: () => import('views/parity/parityCom/hall.vue'), + }, + { + path: 'notice', + name: 'notice', + meta: { + title: '寻源结果公示公告', + isLogin: true, + AuthFlag: false, + activeName: 'parity', + }, + component: () => import('views/parity/parityCom/notice.vue'), + } + ] + }, + // 寻源比价 (报价) + { + path: '/quotation', + name: 'quotation', + meta: { + title: '企业专区', + isLogin: true, + AuthFlag: false, + + }, + component: () => import('views/parity/parityCom/quotation.vue') }, // 企业专区页面 { @@ -140,7 +180,8 @@ const routes: Array = [ meta: { title: '企业专区', isLogin: true, - AuthFlag: false + AuthFlag: false, + activeName: 'enterpriseZone', }, component: () => import('views/enterpriseZone/index.vue') }, @@ -228,6 +269,18 @@ const routes: Array = [ isLogin: true }, }, + /* 寻源需求 */ + { + path: 'sourcingNeed', + name: 'sourcingNeed', + component: () => import('views/user/sourcingNeed/index.vue'), + meta: { + title: '寻源需求', + keepAlive: true, + AuthFlag: false, + isLogin: true + }, + }, { path: 'orderManagementCz', name: 'orderManagementCz', @@ -305,7 +358,29 @@ const routes: Array = [ AuthFlag: false, isLogin: true }, - } + }, + { + path: 'sourcingBidding', + name: 'sourcingBidding', + component: () => import('views/user/sourcingBidding/index.vue'), + meta: { + title: '寻源竞价', + keepAlive: true, + AuthFlag: false, + isLogin: true + }, + }, + { + path: 'zoneManag', + name: 'zoneManag', + component: () => import('views/user/zoneManag/index.vue'), + meta: { + title: '专区管理', + keepAlive: true, + AuthFlag: false, + isLogin: true + }, + }, ] }, ] diff --git a/src/store/user.ts b/src/store/user.ts index 1a6081a..f37f4a8 100644 --- a/src/store/user.ts +++ b/src/store/user.ts @@ -10,6 +10,7 @@ export const useStore = defineStore('myUser', { { title: '订单管理', name: 'orderManagement' }, { title: '子账号管理', name: 'subAccount' }, { title: '业务开通', name: 'business' }, + { title: '寻源需求', name: 'sourcingNeed' }, ], provinceList: [], // 省份信息 marketList: [], // 市级信息 diff --git a/src/views/home/index.vue b/src/views/home/index.vue index 9c05fe2..dfb018e 100644 --- a/src/views/home/index.vue +++ b/src/views/home/index.vue @@ -211,12 +211,13 @@ .left-nav { position: relative; + margin-top: 8px; width: 200px; height: 100%; display: flex; background-color: #f7f9fa; flex-direction: column; - justify-content: space-around; + // justify-content: space-around; .item-nav { // text-align: left; diff --git a/src/views/parity/index.vue b/src/views/parity/index.vue index 985d8de..61d1ae3 100644 --- a/src/views/parity/index.vue +++ b/src/views/parity/index.vue @@ -1,26 +1,33 @@ - diff --git a/src/views/parity/parityCom/hall.vue b/src/views/parity/parityCom/hall.vue new file mode 100644 index 0000000..87d63bd --- /dev/null +++ b/src/views/parity/parityCom/hall.vue @@ -0,0 +1,56 @@ + + + + + diff --git a/src/views/parity/parityCom/itemCard.vue b/src/views/parity/parityCom/itemCard.vue new file mode 100644 index 0000000..4ee298d --- /dev/null +++ b/src/views/parity/parityCom/itemCard.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/src/views/parity/parityCom/notice.vue b/src/views/parity/parityCom/notice.vue new file mode 100644 index 0000000..c3dca57 --- /dev/null +++ b/src/views/parity/parityCom/notice.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/src/views/parity/parityCom/quotation.vue b/src/views/parity/parityCom/quotation.vue new file mode 100644 index 0000000..0a27e16 --- /dev/null +++ b/src/views/parity/parityCom/quotation.vue @@ -0,0 +1,156 @@ + + + + + diff --git a/src/views/user/goodsManagement/index.vue b/src/views/user/goodsManagement/index.vue index 48165a7..55c0359 100644 --- a/src/views/user/goodsManagement/index.vue +++ b/src/views/user/goodsManagement/index.vue @@ -294,20 +294,23 @@ /* 检测信息 ,保险信息*/ fileList: [], /* 设备状态 */ - maStatus: 15 + maStatus: 15, + detectionList: [], + insureList: [], + picList: [] } // 打开入驻弹框 dialogFormVisibleSettlein.value = true } - const ruleFormRef = ref() + const ruleFormRef: any = ref(null) // 入驻框保存提交 const submitBtn = async () => { - console.log(AssemblyRegisterAddress, '地址***---***') - // equipmentDeploymentParams.value.location = AssemblyRegisterAddress.join(',') - // equipmentDeploymentParams.typeId = deviceType.join(',') - const res: any = await equipmentDeploymentApi(equipmentDeploymentParams.value) + ruleFormRef.value.validate((valid: any) => { + console.log(valid) + }) + /* const res: any = await equipmentDeploymentApi(equipmentDeploymentParams.value) if (res.code === 200) { ElMessage({ type: 'success', @@ -316,23 +319,9 @@ dialogFormVisibleSettlein.value = false getList() - } - - /* ruleFormRef.value.validate((valid: any) => { - console.log(valid) - }) */ + } */ } - const tableProps: any = ref([ - { v_label: '编码', v_props: 'code', v_slot: '', width: '' }, - { v_label: '租赁范围', v_props: 'leaseScope', v_slot: '', width: '' }, - { v_label: '装备类型', v_props: 'modelName', v_slot: '', width: '' }, - { v_label: '装备名称', v_props: 'v_equipment_name', v_slot: '', width: '' }, - { v_label: '租金', v_props: 'monthLeasePrice', v_slot: '', width: '' }, - { v_label: '状态', v_props: 'maStatus', v_slot: 'v_type', width: '' }, - { v_label: '操作', v_props: 'v_operate', v_slot: 'operate', width: '140px' } - ]) - // 表单 lable 数据 const formItemList: any = ref([ { v_label: '编码', v_typ: 'ipt' }, @@ -345,21 +334,146 @@ // 装备入驻弹框显示隐藏 const dialogFormVisibleSettlein: any = ref(false) - const rules = ref({ - v_name: [ + const equipRules = ref({ + leaseScope: [ { required: true, - message: '必填项', - trigger: 'blur' - }, - { min: 3, max: 5, message: 'Length should be 3 to 5', trigger: 'blur' } + message: '请选择租赁范围', + trigger: 'change' + } ], - v_region: [ + provinceId: [ { required: true, - message: '必填项', + message: '请选择省', + trigger: 'change' + } + ], + cityId: [ + { + required: true, + message: '请选择市', + trigger: 'change' + } + ], + areaId: [ + { + required: true, + message: '请选择区', + trigger: 'change' + } + ], + companyId: [ + { + required: true, + message: '请选择设备类型', + trigger: 'change' + } + ], + groupId: [ + { + required: true, + message: '请选择组别', + trigger: 'change' + } + ], + typeId: [ + { + required: true, + message: '请选择产品名称', + trigger: 'change' + } + ], + brand: [ + { + required: true, + message: '请输入设备品牌', trigger: 'blur' } + ], + modelName: [ + { + required: true, + message: '请输入设备型号', + trigger: 'blur' + } + ], + productionDate: [ + { + required: true, + message: '请选择出厂日期', + trigger: 'change' + } + ], + workingHours: [ + { + required: true, + message: '请输入工作小时数', + trigger: 'blur' + } + ], + serialNumber: [ + { + required: true, + message: '请输入整机序列号', + trigger: 'blur' + } + ], + monthLeasePrice: [ + { + required: true, + message: '请输入月租金', + trigger: 'blur' + } + ], + dayLeasePrice: [ + { + required: true, + message: '请输入天租金', + trigger: 'blur' + } + ], + isOperator: [ + { + required: true, + message: '请确定是否需要机手', + trigger: 'blur' + } + ], + jsMonthPrice: [ + { + required: true, + message: '请输入机手月费用', + trigger: 'blur' + } + ], + jsDayPrice: [ + { + required: true, + message: '请输入机手日费用', + trigger: 'blur' + } + ], + detectionList: [ + { + required: true, + message: '请上传检测信息', + trigger: 'change' + } + ], + insureList: [ + { + required: true, + message: '请上传保险信息', + trigger: 'change' + } + ], + picList: [ + { + required: true, + message: '请上传设备图片信息', + trigger: 'change' + } ] }) @@ -397,8 +511,6 @@ - - - + - + - + - + - + - import { ref } from 'vue' import { useRouter } from 'vue-router' import { useStore } from '../../store/user' import { mainStore } from '../../store/main' import { useRoute } from 'vue-router' + + const spaceTop = ref('') const store = useStore() const router = useRouter() const route = useRoute() @@ -20,7 +21,8 @@ { title: '基础信息', name: 'baseInfo' }, { title: '订单管理', name: 'orderManagement' }, { title: '子账号管理', name: 'subAccount' }, - { title: '业务开通', name: 'business' } + { title: '业务开通', name: 'business' }, + { title: '寻源需求', name: 'sourcingNeed' } ]) router.push({ name: 'baseInfo' }) } @@ -33,7 +35,9 @@ { title: '订单管理', name: 'orderManagementCz' }, { title: '商品管理', name: 'goodsManagement' }, { title: '商品上下架', name: 'goodsUpdown' }, - { title: '机手管理', name: 'operatorManagement' } + { title: '机手管理', name: 'operatorManagement' }, + { title: '寻源竞价', name: 'sourcingBidding' }, + { title: '专区管理', name: 'zoneManag' } ]) router.push({ name: 'orderManagementCz' }) } @@ -65,13 +69,19 @@ ]) } }) + + onMounted(() => { + let divElement: any = document.getElementById('user-container') + let rect = divElement.getBoundingClientRect() + let top = rect.top + 20 + 'px' + spaceTop.value = top + }) diff --git a/src/views/user/sourcingBidding/index.vue b/src/views/user/sourcingBidding/index.vue new file mode 100644 index 0000000..1db00d0 --- /dev/null +++ b/src/views/user/sourcingBidding/index.vue @@ -0,0 +1,56 @@ + + + + + diff --git a/src/views/user/sourcingNeed/index.vue b/src/views/user/sourcingNeed/index.vue new file mode 100644 index 0000000..35f9156 --- /dev/null +++ b/src/views/user/sourcingNeed/index.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/src/views/user/zoneManag/index.vue b/src/views/user/zoneManag/index.vue new file mode 100644 index 0000000..ec1ab8a --- /dev/null +++ b/src/views/user/zoneManag/index.vue @@ -0,0 +1,47 @@ + + + + +