Parcourir la source

fix: 增加部门树渲染

johnsen il y a 9 mois
Parent
commit
2f3c066bab

+ 1 - 0
src/business/platform/data/templaterender/linkdata/index.vue

@@ -25,6 +25,7 @@
     :right-icon="rightIcon"
     :icon-prefix="iconPrefix"
     :rules="editable ? rules : null"
+    class="no-err"
     readonly
     @click-input="onClick"
   >

+ 34 - 0
src/business/platform/form/dynamic-form/form-field.vue

@@ -5,6 +5,7 @@
       fieldType === 'text' || fieldType === 'textarea' || fieldType === 'number'
     "
     v-model="dataModel"
+    :class="readonly ? '' : 'pink'"
     :name="field.name"
     :label="label"
     :placeholder="placeholder"
@@ -45,6 +46,7 @@
     :label="label"
     :required="required"
     :readonly="readonly"
+    :class="readonly ? '' : 'pink'"
     :rules="rules"
     v-on="$listeners"
   />
@@ -62,6 +64,7 @@
     :other-option-value.sync="otherOptionValue"
     :required="required"
     :readonly="readonly"
+    :class="readonly ? '' : 'pink'"
     :rules="rules"
     :desc-position="descPosition"
     :desc="field.desc"
@@ -83,6 +86,7 @@
     :other-option-value.sync="otherOptionValue"
     :required="required"
     :readonly="readonly"
+    :class="readonly ? '' : 'pink'"
     :rules="rules"
     :desc-position="descPosition"
     :desc="field.desc"
@@ -102,6 +106,7 @@
     value-key="val"
     :required="required"
     :readonly="readonly"
+    :class="readonly ? '' : 'pink'"
     :rules="rules"
     :desc-position="descPosition"
     :desc="field.desc"
@@ -130,6 +135,11 @@
         ? true
         : readonly
     "
+    :class="
+      readonly || fieldType === 'currentTime' || fieldType === 'currentDate'
+        ? ''
+        : 'pink'
+    "
     :rules="rules"
     type="custom"
     v-on="$listeners"
@@ -153,6 +163,7 @@
     :inactive-color="fieldOptions.inactive_color"
     :required="required"
     :disabled="readonly"
+    :class="readonly ? '' : 'pink'"
     :rules="rules"
     v-on="$listeners"
   />
@@ -171,6 +182,7 @@
     :step="fieldOptions.step"
     :required="required"
     :disabled="readonly"
+    :class="readonly ? '' : 'pink'"
     :rules="rules"
     v-on="$listeners"
   />
@@ -189,6 +201,7 @@
     :allow-half="fieldOptions.allow_half"
     :required="required"
     :readonly="readonly"
+    :class="readonly ? '' : 'pink'"
     :rules="rules"
     v-on="$listeners"
   />
@@ -204,6 +217,7 @@
     :name="field.name"
     :required="required"
     :readonly="readonly"
+    :class="readonly ? '' : 'pink'"
     :rules="rules"
     v-on="$listeners"
   />
@@ -224,6 +238,7 @@
     :name="field.name"
     :required="required"
     :readonly="readonly"
+    :class="readonly ? '' : 'pink'"
     :rules="rules"
     v-on="$listeners"
   />
@@ -241,6 +256,7 @@
     :name="field.name"
     :required="required"
     :readonly="readonly"
+    :class="readonly ? '' : 'pink'"
     :rules="rules"
     v-on="$listeners"
   />
@@ -264,6 +280,7 @@
     :name="field.name"
     :required="required"
     :readonly="readonly"
+    :class="readonly ? '' : 'pink'"
     :rules="rules"
     v-on="$listeners"
   />
@@ -294,6 +311,11 @@
         ? true
         : readonly
     "
+    :class="
+      readonly || fieldType === 'currentUser' || fieldType === 'currentOrg'
+        ? ''
+        : 'pink'
+    "
     :rules="rules"
     @bind-callback="selectorBindCallback"
     v-on="$listeners"
@@ -316,6 +338,7 @@
     :name="field.name"
     :required="required"
     :readonly="fieldType === 'currentPosition' ? true : readonly"
+    :class="readonly || fieldType === 'currentPosition' ? '' : 'pink'"
     :rules="rules"
     @bind-callback="selectorBindCallback"
     v-on="$listeners"
@@ -338,6 +361,7 @@
     :name="field.name"
     :required="required"
     :readonly="readonly"
+    :class="readonly ? '' : 'pink'"
     :rules="rules"
     v-on="$listeners"
     @callback="handleLinkageData"
@@ -363,6 +387,7 @@
     :name="field.name"
     :required="required"
     :readonly="readonly"
+    :class="readonly ? '' : 'pink'"
     :rules="rules"
     v-on="$listeners"
     @callback="handleLinkageData"
@@ -385,6 +410,7 @@
     :name="field.name"
     :required="required"
     :readonly="readonly"
+    :class="readonly ? '' : 'pink'"
     :rules="rules"
     v-on="$listeners"
   />
@@ -450,6 +476,7 @@
       :field="field"
       :form-data="formData"
       :readonly="readonly"
+      :class="readonly ? '' : 'pink'"
       :readonly-style="readonlyStyle"
       :code="code"
       :row="row"
@@ -495,6 +522,7 @@
     :name="field.name"
     :required="required"
     readonly
+    :class="readonly ? '' : 'pink'"
     autosize
     v-on="$listeners"
   >
@@ -561,6 +589,7 @@
     :name="field.name"
     :required="required"
     :readonly="readonly"
+    :class="readonly ? '' : 'pink'"
     v-on="$listeners"
   />
   <!-- 流程关联 -->
@@ -1183,4 +1212,9 @@ export default {
   line-height: 20px;
   padding: 2px 0 10px 15px;
 }
+.pink {
+  ::v-deep .van-field__label {
+    color: #f66 !important;
+  }
+}
 </style>

+ 1 - 0
src/business/platform/form/dynamic-form/form-item.vue

@@ -26,6 +26,7 @@
       v-else
       ref="formItem"
       v-model="dataModel"
+      class="form-item"
       :field="field"
       :desc-position="descPosition"
       :readonly="readonly"

+ 5 - 3
src/business/platform/org/selector/index.vue

@@ -1,6 +1,7 @@
 <template>
   <div class="van-cell ibps-p-0">
-    <div class="van-field__control" v-if="islistShow">
+    <!-- {{ fieldOptions }} -->
+    <div v-if="islistShow" class="van-field__control">
       <van-tag
         v-for="(item, index) in selectedData.slice(0, num)"
         :key="item[valueKey]"
@@ -218,7 +219,7 @@ import i18n from '@/utils/i18n' // Internationalization 国际化
 import { typeOptions as partyTypeOptions } from './constants'
 
 export default {
-  name: 'ibps-user-selector',
+  name: 'IbpsUserSelector',
   components: {
     EmployeeSelector,
     OrgSelector,
@@ -364,7 +365,7 @@ export default {
       immediate: true
     },
     filter: {
-      handler(val, oldVal) {
+      handler(val) {
         // console.info(val, '==>>filter')
         this.filterScope(val)
       },
@@ -593,6 +594,7 @@ export default {
     },
     // 根据选择器类型分发筛选条件并储存
     filterSelectorType(val) {
+      console.log('filterSelectorType====>', val)
       switch (val.type) {
         case 'user':
           this.getUserSelectorCondition(val, val.userType)

+ 7 - 2
src/business/platform/org/selector/position.vue

@@ -210,6 +210,7 @@ export default {
       this.loading = true
       let params = {}
       const type = this.partyTypeId !== '' ? this.partyTypeId : '1'
+      console.log('isUseScope-->', this.isUseScope)
       if (this.isUseScope) {
         params.type = type
         params.includeSub = type === '1'
@@ -217,8 +218,8 @@ export default {
           params.partyId = this.$utils.isEmpty(data)
             ? '0'
             : data.id === ''
-              ? '0'
-              : data.id
+            ? '0'
+            : data.id
         }
         if (type === '3') {
           params.partyId = this.currentOrgId
@@ -236,8 +237,10 @@ export default {
       } else {
         params.type = '1'
         params.posId = data.id === 0 ? null : data.id
+        params.name = data.name
       }
       if (this.$utils.isEmpty(data) || data.id === '0' || data.id === '') {
+        console.log('data=-=-=-=-=-=->', data, params.type, this.partyTypeId)
         getPositionTreeData(params)
           .then((res) => {
             console.log(res, '1111')
@@ -262,11 +265,13 @@ export default {
             this.listData = []
           })
       } else if (data.id !== '0') {
+        console.log('2222222222222222===>', data)
         if (type === '2') {
           params = {}
           params.type = '1'
           params.posId = data.id
         }
+        params.name = data.name
         queryByParentId(params)
           .then((res) => {
             this.loading = false

+ 3 - 3
src/business/platform/org/selector/selector.vue

@@ -15,11 +15,11 @@
           @title="onTitle"
           @confirm="onConfirm"
         />
-        <van-search
+        <!-- <van-search
           v-model="search"
           :placeholder="searchPlaceholder"
           @search="onSearch"
-        />
+        /> -->
       </van-sticky>
 
       <van-cell
@@ -59,7 +59,6 @@
       <div v-else>
         <slot name="rootTitle" />
       </div>
-
       <van-checkbox-group
         ref="checkboxGroup"
         v-model="checkbox"
@@ -75,6 +74,7 @@
           >
             <div slot="title" @click="toggle(data, index)">
               <van-checkbox
+                v-if="data[valueKey] !== '0'"
                 ref="checkboxes"
                 :disabled="data[valueKey] === '0'"
                 :name="data[valueKey]"

+ 1 - 1
src/utils/action.js

@@ -461,7 +461,7 @@ const action = {
           ? params[k]
           : {
             key: k,
-            value: params[k]
+            value: params[k] || ''
           }
       })
     }

+ 6 - 0
src/views/component/facility/facilityData.vue

@@ -60,6 +60,7 @@
           />
           <van-field
             v-model="item.value"
+            class="pink"
             label="参数值"
             :placeholder="readonly ? '' : '请输入'"
             :readonly="readonly"
@@ -455,6 +456,11 @@ export default {
 </script>
 <style lang="scss" scoped>
 .ficily-data {
+  .pink {
+    ::v-deep .van-field__label {
+      color: #f66;
+    }
+  }
   margin-bottom: 20px;
   .button {
     display: flex;

+ 31 - 0
src/views/platform/data/components/search-field/index.vue

@@ -143,10 +143,41 @@
     :multiple="!single"
     :bind-id="bindId"
     :field-options="fieldOptions"
+    :filter="fieldOptions.filter"
     :name="item.prop"
     :input-align="inputAlign"
     @bind-callback="selectorBindCallback"
   />
+  <!-- 选择器 -->
+  <!-- <ibps-selector
+    v-else-if="
+      fieldType === 'selector' ||
+      fieldType === 'currentUser' ||
+      fieldType === 'currentOrg'
+    "
+    v-model="dataModel"
+    :label="field.label"
+    :desc="field.desc"
+    :desc-position="descPosition"
+    :placeholder="placeholder"
+    :store="fieldOptions.store || 'id'"
+    :type="fieldOptions.selector_type || 'user'"
+    :multiple="multiple"
+    :bind-id="bindId"
+    :field-options="fieldOptions"
+    :filter="fieldOptions.filter"
+    :input-align="inputAlign"
+    :name="field.name"
+    :required="required"
+    :readonly="
+      fieldType === 'currentUser' || fieldType === 'currentOrg'
+        ? true
+        : readonly
+    "
+    :rules="rules"
+    @bind-callback="selectorBindCallback"
+    v-on="$listeners"
+  /> -->
   <!-- 流程实例-->
   <ibps-bpm-inst-his
     v-else-if="item.fieldType === 'bpmInstHis'"

+ 12 - 3
src/views/platform/data/template-list.vue

@@ -400,6 +400,7 @@ export default {
       }
       return fields
     },
+
     ownsDeptInfo() {
       return this.$store.getters.mainPosition
         ? this.$store.getters.mainPosition
@@ -541,7 +542,7 @@ export default {
     initFormData(data) {
       this.title = data['name']
       this.dataTemplate = data
-      // console.log('this.$store---->', this.$store.getters.mainPosition)
+      console.log('this.$store---->', JSON.parse(JSON.stringify(data)))
       // 初始化脚本
       if (!this.isInitialization) {
         this.initJTemplate()
@@ -554,7 +555,7 @@ export default {
       const template = getDataTemplateListTemplate(data)
       this.template = template
       this.templateFields = buildDataTemplateFields(data.fields)
-      // console.log('this.templateFields===>', this.dataTemplate)
+      console.log('this.templateFields===>', this.templateFields)
       this.buildKey(data, template)
       this.loadData()
       this.initFilterText()
@@ -1701,6 +1702,11 @@ export default {
             querySuffix = 'SL'
           }
           const prop = `Q^${field.name}^${querySuffix}`
+          console.log(
+            'this.templateFields[field.name].filter===>',
+            field.name,
+            this.templateFields
+          )
           searchColumn = Object.assign(searchColumn, {
             prop: prop,
             slotName: prop + 'searchForm',
@@ -1708,7 +1714,10 @@ export default {
             modelValue: prop,
             multiple: fieldOptions.multiple || false,
             selectorType: fieldOptions.selector_type || 'user',
-            fieldOptions: fieldOptions
+            fieldOptions: {
+              ...fieldOptions,
+              filter: this.templateFields[field.name].field_options.filter || []
+            }
           })
         } else if (fieldType === 'customDialog') {
           if (this.$utils.isEmpty(querySuffix)) {