iZaiZaiA il y a 2 ans
Parent
commit
fed09e0c17

+ 1 - 1
src/config/index.js

@@ -17,7 +17,7 @@ export default {
     statusWhiteList: [],    //http的status默认放行列表
     ossUrl: 'https://bladex-test-info.oss-cn-chengdu.aliyuncs.com', //oss地址
     smsPhone: '',  //测试接受短信验证码的手机号
-    dev_version: '202209131600',    //开发版本号
+    dev_version: '202209141405',    //开发版本号
     prod_host: 'http://47.110.251.215:8090',  //线上
     dev_host: 'http://192.168.4.6', //黄键楠
     //dev_host: 'http://192.168.3.13', //祝炜

+ 1 - 1
src/layout/modules/MenuItem.vue

@@ -17,7 +17,7 @@
         <el-menu-item :index="item?.code" v-else @click="MenuClick(item)">
             <div class="hc-aside-menu-item">
                 <div class="menu---item">
-                    <HcIcon :name="item?.source" :fill="curKey === item?.key" class="hc-menu-icon" v-if="item?.source"/>
+                    <HcIcon :name="item?.source" :fill="curKey === item?.code" class="hc-menu-icon" v-if="item?.source"/>
                     <div class="name truncate" v-if="isCollapse">{{ item?.name.substring(0,2) }}</div>
                     <div class="name truncate" v-else>{{ item?.name }}</div>
                     <el-badge :value="12" v-if="item?.code === 'tasks-data' || item?.code === 'message-data'"/>

+ 112 - 93
src/views/data-fill/components/ListItem.vue

@@ -136,23 +136,16 @@
 import {ref,watch,nextTick} from "vue";
 import notableform from '~src/assets/view/notableform.svg';
 import {HTableForm} from "~src/plugins/HTableForm"
-import {utilsText, isType, toParse, formValidate} from "vue-utils-plus"
 import wbsApi from "~api/data-fill/wbs"
 import HcUpload from "./HcUpload.vue"
+import {utilsText, isType, toParse, formValidate,deepClone} from "vue-utils-plus"
+
 //初始
 const props = defineProps({
     datas: {
         type: Array,
         default: () => ([])
     },
-    projectId: {
-        type: [String,Number],
-        default: ''
-    },
-    contractId: {
-        type: [String,Number],
-        default: ''
-    },
     classify: {
         type: [String,Number],
         default: ''
@@ -164,8 +157,6 @@ const props = defineProps({
 })
 const {isString, getObjNullValue, getArrValue} = isType()
 const {setPosInsert, setPosRange} = utilsText()
-const projectId = ref(props.projectId)
-const contractId = ref(props.contractId)
 const listDatas = ref(props.datas)
 const classify = ref(props.classify)
 const isStatus = ref(props.status)
@@ -173,13 +164,9 @@ const isStatus = ref(props.status)
 //监听
 watch(() => [
     props.datas,
-    props.projectId,
-    props.contractId,
     props.classify,
-], ([datas, pid, cid,classifyVal]) => {
+], ([datas, classifyVal]) => {
     listDatas.value = datas
-    projectId.value = pid
-    contractId.value = cid
     classify.value = classifyVal
     setFormDataNum(datas)
 })
@@ -198,12 +185,12 @@ nextTick(() => {
 })
 
 //获取表单初始数据
-const getFormDataInit = (pkeyId) => {
+const getFormDataInit = (item, pkeyId) => {
     return {
-        projectId: projectId.value,
-        contractId: contractId.value,
+        projectId: item?.projectId,
+        contractId: item?.contractId,
         classify: classify.value,
-        pkeyId: pkeyId + '',
+        pkeyId: pkeyId ? pkeyId + '' : '',
     }
 }
 
@@ -212,7 +199,7 @@ const formData = ref([])
 const setFormDataNum = (datas) => {
     let newArr = [];
     for (let i = 0; i < datas.length; i++) {
-        newArr.push(getFormDataInit(datas[i].pkeyId + ''))
+        newArr.push(getFormDataInit(datas[i], datas[i].pkeyId))
     }
     formData.value = newArr
 }
@@ -230,8 +217,7 @@ const CollapseChange = (name) => {
             //渲染表单
             getExcelHtml(item,index)
             //获取已填写的数据
-            const pkeyId = item.pkeyId || ''
-            getBussDataInfo(pkeyId + '', index)
+            getBussDataInfo(item,item.pkeyId, index)
         }
     } else {
         getOffsetTop()
@@ -240,9 +226,9 @@ const CollapseChange = (name) => {
 
 //获取模板标签数据
 const getExcelHtml = async (item,index) => {
-    const pkeyId = item.pkeyId || ''
-    if (pkeyId) {
-        const {error, code, data} = await wbsApi.getExcelHtml({pkeyId: pkeyId + ''}, false)
+    const pkeyIds = item.pkeyId ? item.pkeyId + '' : ''
+    if (pkeyIds) {
+        const {error, code, data} = await wbsApi.getExcelHtml({pkeyId: pkeyIds}, false)
         const resData = isString(data) ? data || '' : ''
         if (!error && code === 200 && resData) {
             item.isTableForm = true
@@ -250,7 +236,7 @@ const getExcelHtml = async (item,index) => {
             HTableForm({
                 template: resData,
                 tableForm: formData.value[index],
-                appId: `#table-form-${pkeyId}`,
+                appId: `#table-form-${pkeyIds}`,
                 onRight: (event, KeyName) => {
                     onRightClick(event, KeyName, index)
                 }
@@ -267,27 +253,32 @@ const getExcelHtml = async (item,index) => {
 }
 
 //获取已填写的数据
-const getBussDataInfo = async (pkeyId, index) => {
-    const {error, code, data} = await wbsApi.getBussDataInfo({pkeyId: pkeyId}, false)
-    const resData = getObjNullValue(data)
-    if (!error && code === 200 && resData) {
-        //处理日期范围数据
-        const pickerKey = resData['pickerKey'] || ''
-        const pickerKeys = pickerKey.split(',')
-        for (let i = 0; i < pickerKeys.length; i++) {
-            const val = resData[pickerKeys[i]] || ''
-            if (val) {
-                const data = val.replace(/'/g,'"');
-                resData[pickerKeys[i]] = toParse(data) || []
-            } else {
-                resData[pickerKeys[i]] = []
+const getBussDataInfo = async (item,pkeyId, index) => {
+    const pkeyIds = pkeyId ? pkeyId + '' : ''
+    if (pkeyIds) {
+        const {error, code, data} = await wbsApi.getBussDataInfo({pkeyId: pkeyIds}, false)
+        const resData = getObjNullValue(data)
+        if (!error && code === 200 && resData) {
+            //处理日期范围数据
+            const pickerKey = resData['pickerKey'] || ''
+            const pickerKeys = pickerKey.split(',')
+            for (let i = 0; i < pickerKeys.length; i++) {
+                const val = resData[pickerKeys[i]] || ''
+                if (val) {
+                    const data = val.replace(/'/g,'"');
+                    resData[pickerKeys[i]] = toParse(data) || []
+                } else {
+                    resData[pickerKeys[i]] = []
+                }
             }
+            //有数据,关联数据
+            const InitObj = getFormDataInit(item, pkeyId)
+            formData.value[index] = { ...resData, ...InitObj}
+        } else {
+            formData.value[index] = getFormDataInit(item, pkeyId)
         }
-        //有数据,关联数据
-        const InitObj = getFormDataInit(pkeyId)
-        formData.value[index] = { ...InitObj, ...resData }
     } else {
-        formData.value[index] = getFormDataInit(pkeyId)
+        window?.$message?.warning('pkeyId为空')
     }
 }
 
@@ -306,10 +297,10 @@ const tableFormSaveClick = async (item,index) => {
 
 //保存表单数据
 const saveExcelBussData = async (item, index, showTip = true) => {
+    const InitObj = getFormDataInit(item, item.pkeyId)
     const {error, code, data} = await wbsApi.saveExcelBussData({
         ...formData.value[index],
-        pkeyId: item.pkeyId + '',
-        classify: classify.value,
+        ...InitObj
     }, false)
     //处理数据
     if (!error && code === 200) {
@@ -323,70 +314,90 @@ const saveExcelBussData = async (item, index, showTip = true) => {
 
 //预览PDF
 const getBussPdfInfo = async (item, showTip = true) => {
-    const {error, code, data} = await wbsApi.getBussPdfInfo({
-        pkeyId: item.pkeyId + ''
-    },false)
-    if (!error && code === 200) {
-        if (data) {
-            window.open(data, '_blank')
-        } else if(showTip) {
-            window?.$message?.warning('PDF错误')
+    const pkeyIds = item.pkeyId ? item.pkeyId + '' : ''
+    if (pkeyIds) {
+        const {error, code, data} = await wbsApi.getBussPdfInfo({
+            pkeyId: pkeyIds
+        },false)
+        if (!error && code === 200) {
+            if (data) {
+                window.open(data, '_blank')
+            } else if(showTip) {
+                window?.$message?.warning('PDF错误')
+            }
+        } else {
+            if(showTip) {
+                window?.$message?.warning(data.msg || '获取PDF失败')
+            }
         }
     } else {
-        if(showTip) {
-            window?.$message?.warning(data.msg || '获取PDF失败')
-        }
+        window?.$message?.warning('pkeyId为空')
     }
 }
 
 //删除本表
 const delClick = async (item) => {
-    if (isStatus.value !== '3') {
-        const {error, code} = await wbsApi.removeBussTabInfo({
-            pkeyid: item.pkeyId + '',
-            classify: classify.value,
-        })
-        if (!error && code === 200) {
-            window?.$message?.warning('操作成功')
-            renewData()
+    const pkeyIds = item.pkeyId ? item.pkeyId + '' : ''
+    if (pkeyIds) {
+        if (isStatus.value !== '3') {
+            const {error, code} = await wbsApi.removeBussTabInfo({
+                pkeyid: pkeyIds,
+                classify: classify.value,
+            })
+            if (!error && code === 200) {
+                window?.$message?.warning('操作成功')
+                renewData()
+            }
+        } else {
+            window?.$message?.warning('已上报的资料,不允许删除')
         }
     } else {
-        window?.$message?.warning('已上报的资料,不允许删除')
+        window?.$message?.warning('pkeyId为空')
     }
 }
 
 //复制本表
 const copyClick = async (item,index) => {
-    if (isStatus.value !== '3') {
-        const res = await saveExcelBussData(item,index,false)
-        if (res) {
-            const {error, code} = await wbsApi.copeBussTab({pkeyId: item.pkeyId + ''})
-            if (!error && code === 200) {
-                window?.$message?.warning('操作成功')
-                renewData()
+    const pkeyIds = item.pkeyId ? item.pkeyId + '' : ''
+    if (pkeyIds) {
+        if (isStatus.value !== '3') {
+            const res = await saveExcelBussData(item,index,false)
+            if (res) {
+                const {error, code} = await wbsApi.copeBussTab({pkeyId: pkeyIds})
+                if (!error && code === 200) {
+                    window?.$message?.warning('操作成功')
+                    renewData()
+                }
+            } else {
+                window?.$message?.warning('复制本表操作失败')
             }
         } else {
-            window?.$message?.warning('复制本表操作失败')
+            window?.$message?.warning('已上报的资料,不允许复制')
         }
     } else {
-        window?.$message?.warning('已上报的资料,不允许复制')
+        window?.$message?.warning('pkeyId为空')
     }
 }
 
 //隐藏本表
 const hideClick = async (item) => {
-    if (isStatus.value !== '3') {
-        const isBussShow = item['isBussShow'] === 2 ? 1 : 2 //状态(1显示 2隐藏)
-        const {error, code} = await wbsApi.showBussTab({
-            pkeyId: item.pkeyId + '',
-            status: isBussShow
-        })
-        if (!error && code === 200) {
-            window?.$message?.warning('操作成功')
-            renewData()
+    const pkeyIds = item.pkeyId ? item.pkeyId + '' : ''
+    if (pkeyIds) {
+        if (isStatus.value !== '3') {
+            const isBussShow = item['isBussShow'] === 2 ? 1 : 2 //状态(1显示 2隐藏)
+            const {error, code} = await wbsApi.showBussTab({
+                pkeyId: pkeyIds,
+                status: isBussShow
+            })
+            if (!error && code === 200) {
+                window?.$message?.warning('操作成功')
+                renewData()
+            }
+        } else {
+            window?.$message?.warning('已上报的资料,不允许隐藏')
         }
     } else {
-        window?.$message?.warning('已上报的资料,不允许隐藏')
+        window?.$message?.warning('pkeyId为空')
     }
 }
 
@@ -402,13 +413,18 @@ const uploadData = ref({})
 
 //上传被点击
 const uploadClick = (item) => {
-    if (isStatus.value !== '3') {
-        uploadModal.value = true
-        uploadData.value = getFormDataInit(item.pkeyId + '')
-        //获取文件列表
-        getBussFileList(item.pkeyId + '')
+    const pkeyIds = item.pkeyId ? item.pkeyId + '' : ''
+    if (pkeyIds) {
+        if (isStatus.value !== '3') {
+            uploadModal.value = true
+            uploadData.value = getFormDataInit(item,pkeyIds)
+            //获取文件列表
+            getBussFileList(pkeyIds)
+        } else {
+            window?.$message?.warning('已上报的资料,不允许上传')
+        }
     } else {
-        window?.$message?.warning('已上报的资料,不允许上传')
+        window?.$message?.warning('pkeyId为空')
     }
 }
 
@@ -574,7 +590,10 @@ const renewData = () => {
 
 //获取表单数据
 const getFormData = () => {
-    return formData.value
+    const formArr = deepClone(formData.value);
+    return formArr.filter((item) => {
+        return (item.pkeyId??'') !== '';
+    })
 }
 
 // 暴露出去

+ 3 - 3
src/views/data-fill/wbs.vue

@@ -33,7 +33,7 @@
             <HcDrawer :show="isDrawer" :scrollbar="false" actionSize="lg" to-id="wbs-node-tree-card-target">
                 <!--清表列表-->
                 <el-scrollbar ref="ListItemScrollRef">
-                    <ListItem ref="ListItemsRef" :datas="ListItemDatas" :status="NodeStatus" :projectId="projectId" :contractId="contractId" :classify="authBtnTabKey" @offsetTop="ListItemOffsetTop" @renew="getTableDataAll"/>
+                    <ListItem ref="ListItemsRef" :datas="ListItemDatas" :status="NodeStatus" :classify="authBtnTabKey" @offsetTop="ListItemOffsetTop" @renew="getTableDataAll"/>
                 </el-scrollbar>
                 <!--底部按钮区域-->
                 <template #action>
@@ -133,7 +133,7 @@
                     </template>
                     <!--清表列表-->
                     <el-scrollbar ref="ListItemScrollRef" v-loading="ListItemLoading">
-                        <ListItem ref="ListItemRef" :datas="ListItemDatas" :status="NodeStatus" :projectId="projectId" :contractId="contractId" :classify="authBtnTabKey" @offsetTop="ListItemOffsetTop" @renew="getTableDataAll"/>
+                        <ListItem ref="ListItemRef" :datas="ListItemDatas" :status="NodeStatus" :classify="authBtnTabKey" @offsetTop="ListItemOffsetTop" @renew="getTableDataAll"/>
                     </el-scrollbar>
                     <!--底部按钮区域-->
                     <template #action>
@@ -990,7 +990,7 @@ const searchNodeAllTable = async () => {
     const {error, code, data} = await wbsApi.searchNodeAllTable({
         projectId: projectId.value,
         contractId: contractId.value,
-        primaryKeyId: info['contractIdRelation'] ? info['id'] : info['primaryKeyId'],
+        primaryKeyId: info['primaryKeyId'],
         type: authBtnTabKey.value
     })
     //处理数据