Browse Source

bug修复

iZaiZaiA 2 năm trước cách đây
mục cha
commit
902ec29b06

+ 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: '202209271024',    //开发版本号
+    dev_version: '202209271440',    //开发版本号
     prod_host: 'http://47.110.251.215:8090',  //线上
     dev_host: 'http://192.168.4.6', //黄键楠
     //dev_host: 'http://192.168.3.13', //祝炜

+ 25 - 5
src/views/data-fill/components/ListItem.vue

@@ -144,20 +144,27 @@ const props = defineProps({
         type: [String,Number],
         default: ''
     },
+    primaryKeyId: {
+        type: [String,Number],
+        default: ''
+    },
 })
 const {isString, getObjNullValue, getArrValue} = isType()
 const {setPosInsert, setPosRange} = utilsText()
 const listDatas = ref(props.datas)
 const classify = ref(props.classify)
 const isStatus = ref(props.status)
+const isPrimaryKeyId = ref(props.primaryKeyId)
 
 //监听
 watch(() => [
     props.datas,
     props.classify,
-], ([datas, classifyVal]) => {
+    props.primaryKeyId,
+], ([datas, classifyVal, primaryKeyId]) => {
     listDatas.value = datas
     classify.value = classifyVal
+    isPrimaryKeyId.value = primaryKeyId
     setFormDataNum(datas)
 })
 
@@ -181,6 +188,7 @@ const getFormDataInit = (item, pkeyId) => {
         contractId: item?.contractId,
         classify: classify.value,
         pkeyId: pkeyId ? pkeyId + '' : '',
+        nodeId: isPrimaryKeyId.value
     }
 }
 
@@ -240,7 +248,7 @@ const getExcelHtml = async (item,index) => {
                 },
                 //表单正则效验
                 onBlur: (event, key, reg, val, msg) => {
-                    setTableFormBlurReg(pkeyIds, event, key, reg, val, msg, item)
+                    setTableFormBlurReg(pkeyIds, event, key, reg, val, msg, item, index)
                 }
             })
             item.isTableFormRender = true
@@ -258,7 +266,7 @@ const getExcelHtml = async (item,index) => {
 }
 
 //正则效验
-const setTableFormBlurReg = (pkeyId, event, key, reg, val, msg, item) => {
+const setTableFormBlurReg = (pkeyId, event, key, reg, val, msg, item, index) => {
     const dom = document.getElementById(key).parentElement
     if (val && reg) {
         let regx = new RegExp(reg);
@@ -270,7 +278,7 @@ const setTableFormBlurReg = (pkeyId, event, key, reg, val, msg, item) => {
             window?.$message?.warning(msg)
         }
         //暂存
-        formRegExpJson.value[pkeyId] = {key, reg, val, msg, state, nodeName: item.nodeName}
+        formRegExpJson.value[pkeyId] = {key, reg, val, msg, state, nodeName: item.nodeName, itemId: `item-${index}-${item?.pkeyId}`}
     } else {
         delete formRegExpJson.value[pkeyId]
         dom.style = ''
@@ -659,10 +667,22 @@ const getFormRegExpJson = () => {
     return deepClone(formRegExpJson.value);
 }
 
+//获取当前展开项
+const getActiveKey = () => {
+    return ActiveKey.value;
+}
+
+//设置当前展开项
+const setActiveKey = (key) => {
+    return ActiveKey.value = key;
+}
+
 // 暴露出去
 defineExpose({
     getFormData,
-    getFormRegExpJson
+    getFormRegExpJson,
+    getActiveKey,
+    setActiveKey
 })
 </script>
 

+ 45 - 6
src/views/data-fill/wbs.vue

@@ -1021,6 +1021,8 @@ const ListItemOffsetTop = (offsetTop) => {
         setTimeout(() => {
             ListItemScrollRef.value?.setScrollTop(offsetTop)
         }, 350)
+    } else {
+        ListItemScrollRef.value?.setScrollTop(offsetTop)
     }
 }
 
@@ -1096,18 +1098,20 @@ const ListItemsRef = ref(null)
 //保存
 const tableFormSaveLoading = ref(false)
 const tableFormSaveClick = async () => {
+    //获取数据
     let FormData = [], FormRegExpJson = {};
     if (isDrawer.value) {
-        FormData = ListItemsRef.value.getFormData()
-        FormRegExpJson = ListItemsRef.value.getFormRegExpJson()
+        FormData = ListItemsRef.value?.getFormData()
+        FormRegExpJson = ListItemsRef.value?.getFormRegExpJson()
     } else {
-        FormData = ListItemRef.value.getFormData()
-        FormRegExpJson = ListItemRef.value.getFormRegExpJson()
+        FormData = ListItemRef.value?.getFormData()
+        FormRegExpJson = ListItemRef.value?.getFormRegExpJson()
     }
     clog('FormData', '表单列表数据', FormData, '客户端')
     clog('FormRegExpJson', '表单效验数据', FormRegExpJson, '客户端')
+    //效验数据
     if (getObjNullValue(FormRegExpJson)) {
-
+        setFormRegExpJson(FormRegExpJson)
     } else if (FormData.length > 0) {
         tableFormSaveLoading.value = true
         const {error, code} = await wbsApi.saveExcelBussData({
@@ -1125,13 +1129,48 @@ const tableFormSaveClick = async () => {
     }
 }
 
+//效验数据
+const setFormRegExpJson = (FormRegExpJson) => {
+    let nodeName = '', itemId = '';
+    Object.keys(FormRegExpJson).forEach(key => {
+        const name = FormRegExpJson[key]?.nodeName ?? ''
+        if (name) {
+            if (nodeName) {
+                nodeName += ',' + name
+            } else {
+                nodeName = name
+                itemId = FormRegExpJson[key]?.itemId
+            }
+        }
+    })
+    const activeKey = ListItemRef.value?.getActiveKey()
+    console.log(activeKey,itemId)
+    //弹出提示
+    const val = '<div style="font-size: 16px;">请先完善  <span style="color:#1ECC95;">' + nodeName + '</span>  的数据内容</div>'
+    window?.$messageBox?.alert(val, '表单完善提醒', {
+        confirmButtonText: '确定',
+        dangerouslyUseHTMLString: true,
+        callback: (action) => {
+            if (action === 'confirm') {
+                ListItemRef.value?.setActiveKey(itemId)
+                ListItemOffsetTop(0)
+                setTimeout(() => {
+                    const offsetTop = document.getElementById(itemId)?.offsetTop
+                    ListItemOffsetTop(offsetTop)
+                }, 350)
+            }
+        }
+    })
+}
+
+
 //多表预览
 const bussPdfsLoading = ref(false)
 const bussPdfsClick = async () => {
     const info = nodeDataInfo.value;
     bussPdfsLoading.value = true
     const {error, code, data} = await wbsApi.getBussPdfs({
-        nodeId:  info?.primaryKeyId || '',
+        nodeId: info?.primaryKeyId || '',
         classify: authBtnTabKey.value,
         projectId: projectId.value,
         contractId: contractId.value