Bladeren bron

任务,审计咨询意见,表单自动计算

ZaiZai 6 maanden geleden
bovenliggende
commit
f033f0bd84
3 gewijzigde bestanden met toevoegingen van 26 en 5 verwijderingen
  1. 4 1
      src/components/table-form/index.vue
  2. 2 2
      src/config/index.json
  3. 20 2
      src/views/tasks/components/hc-data/html-form.vue

+ 4 - 1
src/components/table-form/index.vue

@@ -22,7 +22,7 @@ const props = defineProps({
 })
 
 //事件
-const emit = defineEmits(['render'])
+const emit = defineEmits(['render', 'blur'])
 
 const keyId = getRandom(6)
 
@@ -98,6 +98,9 @@ const getExcelHtml = () => {
                 excelForm.value = form
                 emit('render', form)
             },
+            onBlur: (a, KeyName, b, val) => {
+                emit('blur', KeyName, val)
+            },
         })
         tableFormApp.value = app
         tableFormVM.value = vm

+ 2 - 2
src/config/index.json

@@ -1,8 +1,8 @@
 {
     "version": "20230607160059",
     "target1": "http://127.0.0.1:8090",
-    "target2": "http://192.168.0.125:8090",
-    "target": "http://39.108.216.210:8090",
+    "target": "http://192.168.0.125:8090",
+    "target3": "http://39.108.216.210:8090",
     "target4": "http://192.168.0.109:8090",
     "target5": "http://192.168.0.102:8090",
     "target6": "http://183.247.216.148:28090",

+ 20 - 2
src/views/tasks/components/hc-data/html-form.vue

@@ -1,6 +1,10 @@
 <template>
     <div class="hc-task-html-form-body">
-        <hc-table-form v-if="detailInfo.opinionType === 1 && tableHtml" ref="htmlRef" :form="htmlForm" :html="tableHtml" :loading="htmlLoading" @render="htmlRender" />
+        <hc-table-form
+            v-if="detailInfo.opinionType === 1 && tableHtml"
+            ref="htmlRef" :form="htmlForm" :html="tableHtml"
+            :loading="htmlLoading" @render="htmlRender" @blur="htmlBlur"
+        />
         <hc-pdfs v-else-if="detailInfo.opinionType === 2 && HtmlPdfUrl" :src="HtmlPdfUrl" />
         <hc-empty v-else-if="detailInfo.opinionType === 3" :src="nullPng" title="当前暂无审计咨询意见" />
         <hc-empty v-else :src="noDataPng" />
@@ -9,9 +13,10 @@
 
 <script setup>
 import { onMounted, ref, watch } from 'vue'
-import { deepClone, getObjValue } from 'js-fast-way'
+import { deepClone, getArrValue, getObjValue, isNullES } from 'js-fast-way'
 import nullPng from '~src/assets/view/null.svg'
 import noDataPng from '~src/assets/view/no-data.svg'
+import BigNumber from 'bignumber.js'
 
 const props = defineProps({
     detail: {
@@ -60,6 +65,19 @@ const getTableForm = () => {
     return getObjValue(res)
 }
 
+//表单输入框失去焦点
+const htmlBlur = (key, val) => {
+    if (isNullES(key)) return
+    const calculateKey = getArrValue(detailInfo.value?.calculateKey)
+    if (calculateKey.length < 3) return
+    const a = calculateKey[0], b = calculateKey[1], c = calculateKey[2]
+    if (a !== key) return
+    const form = htmlForm.value
+    const bv = form[b] ?? 0
+    htmlForm.value[c] = (BigNumber(val).plus(bv)).toString()
+    htmlRef.value?.setFormData(htmlForm.value)
+}
+
 defineExpose({
     getTableForm,
 })