Selaa lähdekoodia

fix: 5998 每日安全检查配置时不能只选区域

johnsen 7 kuukautta sitten
vanhempi
sitoutus
17a57bff23

+ 86 - 2
src/business/platform/data/templaterender/link-data/index.vue

@@ -581,15 +581,99 @@ export default {
         formParams = this.$refs['searchForm'].getSearcFormData() || {}
       }
       const responseData = JSON.parse(JSON.stringify(this.template))
-
       responseData.datasetKey = this.dataTemplate.datasetKey
       responseData.unique = this.pkKey
       responseData['key'] = this.templateKey
-      responseData['dynamic_params'] = this.dynamicParams
+      if (this.$utils.isNotEmpty(this.dynamicParams)) {
+        formParams = this.getSearcFormData(this.dynamicParams)
+      }
       formParams['response_data'] = JSON.stringify(responseData)
       formParams['filter_condition_key'] = this.filterConditionKey || ''
       return ActionUtils.formatParams(formParams)
     },
+    getSearcFormData(obj) {
+      const params = {}
+      const nameParams = {}
+      const datePrefix = 'daterange-prefix'
+      const format = {}
+      Object.keys(obj).forEach((t) => {
+        params[`Q^${t}^SL`] = obj[t]
+      })
+      // 剔除params里相同字段既有日期的筛选条件,又有重复的模糊查询条件,只保留日期的
+      for (const i of Object.keys(params)) {
+        const slic = i.slice(2)
+        const name = slic.substring(0, slic.indexOf('^'))
+        const hadName = Object.keys(params).filter((item) => {
+          return item.indexOf(name) > -1
+        })
+        if (name && hadName.length > 2) {
+          delete params[`Q^${name}^SL`]
+        }
+      }
+      const formattedForm = {
+        arg: {
+          relation: 'AND',
+          parameters: []
+        }
+      }
+      Object.keys(params).forEach((v) => {
+        if (v && v.indexOf(datePrefix) === -1) {
+          const val = format[v] ? format[v](params[v], v) : params[v]
+          if (this.$utils.isNotEmpty(val)) {
+            const key = nameParams[v] || v
+            if (!Array.isArray(val)) {
+              const valArr = val.split(',')
+              if (valArr.length > 1) {
+                const parameters = valArr.map((i) => ({
+                  key,
+                  value: i,
+                  param: this.$utils.guid()
+                }))
+                formattedForm.arg.parameters.push({
+                  relation: 'OR',
+                  parameters
+                })
+              } else {
+                const o = {
+                  relation: 'AND',
+                  parameters: [
+                    {
+                      key,
+                      value: val,
+                      param: this.$utils.guid()
+                    }
+                  ]
+                }
+                formattedForm.arg.parameters.push(o)
+              }
+            } else {
+              //通用查询接口列表下拉框无法查询空字符串和NULL优化
+              //拷贝避免影响下拉框渲染的实际数据
+              const valData = JSON.parse(JSON.stringify(val))
+              if (val.includes('为空或NULL')) {
+                valData.push('为空', 'NULL')
+              }
+
+              const parameters = valData.map((i) => ({
+                key:
+                  i === '为空'
+                    ? 'Q^' + key.split('^')[1] + '^SIE'
+                    : i === 'NULL'
+                    ? 'Q^' + key.split('^')[1] + '^ISN'
+                    : key,
+                value: i,
+                param: this.$utils.guid()
+              }))
+              formattedForm.arg.parameters.push({
+                relation: 'OR',
+                parameters
+              })
+            }
+          }
+        }
+      })
+      return formattedForm.arg.parameters.length ? formattedForm : {}
+    },
     initData() {
       if (this.multiple) {
         this.selectData = this.getArrayValue()

+ 2 - 1
src/business/platform/form/formrender/dynamic-form/dynamic-form-table.vue

@@ -650,9 +650,10 @@ export default {
       // 处理数据交换
       const tem = JSON.parse(JSON.stringify(this.copDataModel))
       const currRow = tem.splice(oldIndex, 1)[0]
+      const num = new Date().getTime()
       tem.splice(newIndex, 0, currRow)
       tem.forEach((t, index) => {
-        t.tenantId = index
+        t.tenantId = num + index
       })
       this.sortFlag = true
       this.$emit('update:value', tem)

+ 2 - 1
src/views/platform/risk/riskDetail.vue

@@ -617,11 +617,12 @@ export default {
       newData.splice(newIndex, 0, movedItem)
       // 重新赋值(引用变化,触发更新)
       this.tableList = []
+      const num = new Date().getTime()
       this.$nextTick(() => {
         // 确保数据已更新到DOM
         this.tableList = newData.map((t, index) => ({
           ...t,
-          tenant_id_: index
+          tenant_id_: num + index
         })) // 可结合表格自身的强制更新
       })
       // this.$forceUpdate()

+ 52 - 1
src/views/system/fasc/fecDialog.vue

@@ -54,7 +54,47 @@
               </el-form-item>
             </el-col>
           </el-row>
-          <el-row>
+          <el-row v-show="lei_xing_ === '06-每日安全检查'">
+            <el-col :span="12">
+              <el-form-item>
+                <template slot="label">
+                  <span class="required">区域:</span>
+                </template>
+                <ibps-link-data
+                  v-model="form.qu_yu_"
+                  style="width: 80%"
+                  size="mini"
+                  template-key="qyzly"
+                  :multiple="false"
+                  :temp-search="true"
+                  label-key="qu_yu_ming_cheng_"
+                  value-key="qu_yu_ming_cheng_"
+                  :allow-create="false"
+                  :filterable="false"
+                  @change-link-data="areaChange"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="房间:">
+                <ibps-link-data
+                  v-model="form.fang_jian_"
+                  style="width: 80%"
+                  size="mini"
+                  template-key="fjzly"
+                  :multiple="false"
+                  :temp-search="true"
+                  label-key="fang_jian_ming_ha"
+                  value-key="fang_jian_ming_ha"
+                  :dynamicParams="{ qu_yu_: form.qu_yu_ || '' }"
+                  :allow-create="false"
+                  :filterable="false"
+                  @change-link-data="fangJianChange1"
+                />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row v-show="lei_xing_ !== '06-每日安全检查'">
             <el-col :span="12">
               <el-form-item v-if="shouldRequired('fang_jian_')" label="房间:">
                 <template slot="label">
@@ -723,6 +763,17 @@ export default {
       this.form.qu_yu_ = data.qu_yu_ || ''
       this.form.kong_zhi_biao_zhu = data.kong_zhi_biao_zhu || ''
     },
+    fangJianChange1(key, data) {
+      console.log('fangJianChange1=====>', data)
+      this.form.fang_jian_id_ = data.id_ || ''
+      this.form.kong_zhi_biao_zhu = data.kong_zhi_biao_zhu || ''
+    },
+    areaChange(key, data) {
+      console.log('areaChange=====>', data)
+      this.form.fang_jian_id_ = ''
+      this.form.fang_jian_ = ''
+      // this.form.qu_yu_ = data.qu_yu_ming_cheng_ || ''
+    },
     // 接收自定义组件数据
     onFacilityData(...arg) {
       if (arg.length > 1) {