Browse Source

Merge branch 'master' into dev

xch1523480 3 months ago
parent
commit
9f3f1c179f
27 changed files with 230 additions and 57 deletions
  1. 6 0
      src/components/MobileXForm/Formcanvas.vue
  2. 12 3
      src/components/MobileXForm/Rate.vue
  3. 19 11
      src/components/MobileXForm/Setting.vue
  4. 7 3
      src/components/MobileXForm/components/XFbTextArea.vue
  5. 7 1
      src/components/MobileXForm/components/XFbudgetAmountInput.vue
  6. 8 3
      src/components/MobileXForm/components/XFcheckbox.vue
  7. 8 3
      src/components/MobileXForm/components/XFcreateSelect.vue
  8. 7 1
      src/components/MobileXForm/components/XFdate.vue
  9. 7 1
      src/components/MobileXForm/components/XFdatetime.vue
  10. 7 1
      src/components/MobileXForm/components/XFdevicesTable.vue
  11. 14 2
      src/components/MobileXForm/components/XFdoubleInput.vue
  12. 7 1
      src/components/MobileXForm/components/XFexpectBeginTimeSelect.vue
  13. 7 1
      src/components/MobileXForm/components/XFfile.vue
  14. 7 1
      src/components/MobileXForm/components/XFfile_download.vue
  15. 8 3
      src/components/MobileXForm/components/XFmulticolumnSelect.vue
  16. 7 1
      src/components/MobileXForm/components/XFnumber.vue
  17. 7 1
      src/components/MobileXForm/components/XFpic.vue
  18. 1 0
      src/components/MobileXForm/components/XFrate.vue
  19. 8 3
      src/components/MobileXForm/components/XFselect.vue
  20. 8 3
      src/components/MobileXForm/components/XFselectCustomerVolumeUpCell.vue
  21. 8 3
      src/components/MobileXForm/components/XFselectSkillCell.vue
  22. 7 1
      src/components/MobileXForm/components/XFtext.vue
  23. 7 1
      src/components/MobileXForm/components/XFtextarea.vue
  24. 2 2
      src/components/MobileXForm/settings/logicFormSetting.vue
  25. 1 1
      src/views/demand/component/StatusRecordsItem/index.vue
  26. 42 5
      src/views/demand/component/StatusRecordsItem/table.vue
  27. 1 1
      src/views/demand/component/TableProcessView.vue

+ 6 - 0
src/components/MobileXForm/Formcanvas.vue

@@ -639,6 +639,12 @@ html:not(.wf-cursor-move) .wf-component.active > .wf-overlay {
   flex-direction: row;
   white-space: nowrap;
   margin-bottom: 8px;
+  &-required {
+    &::after {
+      content: "*";
+      color: red;
+    }
+  }
 }
 .wf-componentview > .wf-componentview-border {
   border-width: 1px 0;

+ 12 - 3
src/components/MobileXForm/Rate.vue

@@ -1,8 +1,13 @@
 <template>
   <div class="rate-wrap">
-    <label class="wf-componentview-label" style="align-self: flex-start">{{
-      cnName
-    }}</label>
+    <label
+      :class="[
+        'wf-componentview-label',
+        required === 1 ? 'wf-componentview-label-required' : '',
+      ]"
+      style="align-self: flex-start"
+      >{{ cnName }}</label
+    >
     <div class="flex_row flex_end">
       <template v-if="precisions === 0">
         <div class="flex_row">
@@ -70,6 +75,10 @@ export default {
       type: Number,
       default: 0,
     },
+    required: {
+      type: Number,
+      default: 0,
+    },
     setting: {
       type: Array,
       default() {

+ 19 - 11
src/components/MobileXForm/Setting.vue

@@ -1,6 +1,13 @@
 <!--  -->
 <template>
   <div class="wf-settingpanel">
+    <el-alert
+      :closable="false"
+      title="除显示名称外,其余配置请到[需求字段自定义]中配置"
+      type="warning"
+      style="position: absolute; top: 0"
+    >
+    </el-alert>
     <div class="wf-form wf-widgetsettings">
       <template v-if="component">
         <div class="wf-field wf-setting-label">
@@ -32,11 +39,11 @@
           </div>
         </div>
       </template>
-      <rateSetting
+      <!-- <rateSetting
         v-if="component && component.formType === 'rate'"
         :component="component"
         @changeComponent="changeComponent"
-      />
+      /> -->
 
       <div
         v-if="component && !['rate', 'title'].includes(component.formType)"
@@ -47,18 +54,19 @@
           <!-- <span class="fieldinfo">最多20个字</span> -->
         </div>
         <div class="fieldblock">
-          <input
+          <el-input
             v-model="component.inputTips"
+            disabled
             type="text"
             @input="changeComponent"
           />
         </div>
       </div>
-      <selectSetting
+      <!-- <selectSetting
         v-if="component && ['select', 'checkbox'].includes(component.formType)"
         :component="component"
         @changeComponent="changeComponent"
-      />
+      /> -->
       <settingSetting
         v-if="
           component &&
@@ -67,7 +75,7 @@
         :component="component"
         @changeComponent="changeComponent"
       />
-      <expectBeginTimeSelectSetting
+      <!-- <expectBeginTimeSelectSetting
         v-if="component && component.formType === 'expectBeginTimeSelect'"
         :component="component"
         @changeComponent="changeComponent"
@@ -76,8 +84,8 @@
         v-if="canDefaultValue"
         :component="component"
         @changeComponent="changeComponent"
-      />
-      <serviceOrderTypeSetting
+      /> -->
+      <!-- <serviceOrderTypeSetting
         v-if="
           component && component.formType === 'end_implement_service_order_type'
         "
@@ -106,14 +114,14 @@
           :component="component"
           @changeComponent="changeComponent"
         />
-      </template>
-      <logicFormSetting
+      </template> -->
+      <!-- <logicFormSetting
         v-if="component"
         :component="component"
         :fieldAuth="fieldAuth"
         :formFields="formFields"
         @changeComponent="changeComponent"
-      />
+      /> -->
     </div>
   </div>
 </template>

+ 7 - 3
src/components/MobileXForm/components/XFbTextArea.vue

@@ -10,9 +10,13 @@
     <div class="wf-overlay"></div>
     <div class="wf-componentview">
       <div class="wf-componentview-border">
-        <label class="wf-componentview-label">{{
-          item.labelName || item.cnName
-        }}</label>
+        <label
+          :class="[
+            'wf-componentview-label',
+            item.required === 1 ? 'wf-componentview-label-required' : '',
+          ]"
+          >{{ item.labelName || item.cnName }}</label
+        >
         <span v-if="item.defaultValue">{{ item.defaultValue }}</span>
         <template v-else>
           <span class="wf-componentview-placeholder"

+ 7 - 1
src/components/MobileXForm/components/XFbudgetAmountInput.vue

@@ -10,7 +10,13 @@
     <div class="wf-overlay"></div>
     <div class="wf-componentview">
       <div class="wf-componentview-border">
-        <label class="wf-componentview-label">{{ item.labelName || item.cnName }}</label>
+        <label
+          :class="[
+            'wf-componentview-label',
+            item.required === 1 ? 'wf-componentview-label-required' : '',
+          ]"
+          >{{ item.labelName || item.cnName }}</label
+        >
         <span v-if="item.defaultValue">{{ item.defaultValue }}</span>
         <template v-else>
           <span class="wf-componentview-placeholder"

+ 8 - 3
src/components/MobileXForm/components/XFcheckbox.vue

@@ -14,9 +14,14 @@
     <div class="wf-overlay"></div>
     <div class="wf-componentview">
       <div class="wf-componentview-border">
-        <label class="wf-componentview-label" style="align-self: flex-start">{{
-          item.labelName || item.cnName
-        }}</label>
+        <label
+          :class="[
+            'wf-componentview-label',
+            item.required === 1 ? 'wf-componentview-label-required' : '',
+          ]"
+          style="align-self: flex-start"
+          >{{ item.labelName || item.cnName }}</label
+        >
         <template v-if="item.precisions === 2">
           <span
             v-if="item.defaultValue && item.defaultValue.length"

+ 8 - 3
src/components/MobileXForm/components/XFcreateSelect.vue

@@ -14,9 +14,14 @@
     <div class="wf-overlay"></div>
     <div class="wf-componentview">
       <div class="wf-componentview-border">
-        <label class="wf-componentview-label" style="align-self: flex-start">{{
-          item.labelName || item.cnName
-        }}</label>
+        <label
+          :class="[
+            'wf-componentview-label',
+            item.required === 1 ? 'wf-componentview-label-required' : '',
+          ]"
+          style="align-self: flex-start"
+          >{{ item.labelName || item.cnName }}</label
+        >
         <span v-if="item.defaultValue" class="value">{{
           item.defaultValue
         }}</span>

+ 7 - 1
src/components/MobileXForm/components/XFdate.vue

@@ -14,7 +14,13 @@
     <div class="wf-overlay"></div>
     <div class="wf-componentview">
       <div class="wf-componentview-border">
-        <label class="wf-componentview-label">{{ item.cnName }}</label>
+        <label
+          :class="[
+            'wf-componentview-label',
+            item.required === 1 ? 'wf-componentview-label-required' : '',
+          ]"
+          >{{ item.cnName }}</label
+        >
         <span v-if="item.defaultValue" class="value">{{
           item.defaultValue
         }}</span>

+ 7 - 1
src/components/MobileXForm/components/XFdatetime.vue

@@ -14,7 +14,13 @@
     <div class="wf-overlay"></div>
     <div class="wf-componentview">
       <div class="wf-componentview-border">
-        <label class="wf-componentview-label">{{ item.labelName || item.cnName }}</label>
+        <label
+          :class="[
+            'wf-componentview-label',
+            item.required === 1 ? 'wf-componentview-label-required' : '',
+          ]"
+          >{{ item.labelName || item.cnName }}</label
+        >
         <span v-if="item.defaultValue" class="value">{{
           item.defaultValue
         }}</span>

+ 7 - 1
src/components/MobileXForm/components/XFdevicesTable.vue

@@ -14,7 +14,13 @@
     <div class="wf-overlay"></div>
     <div class="wf-componentview">
       <div class="wf-componentview-border">
-        <label class="wf-componentview-label">{{ item.labelName || item.cnName }}</label>
+        <label
+          :class="[
+            'wf-componentview-label',
+            item.required === 1 ? 'wf-componentview-label-required' : '',
+          ]"
+          >{{ item.labelName || item.cnName }}</label
+        >
         <span v-if="item.defaultValue">{{ item.defaultValue }}</span>
         <template v-else>
           <div class="table v1_4">

+ 14 - 2
src/components/MobileXForm/components/XFdoubleInput.vue

@@ -10,7 +10,13 @@
     <div class="wf-overlay"></div>
     <div class="wf-componentview">
       <div class="wf-componentview-border">
-        <label class="wf-componentview-label">{{ item.labelName || item.cnName }}姓名</label>
+        <label
+          :class="[
+            'wf-componentview-label',
+            item.required === 1 ? 'wf-componentview-label-required' : '',
+          ]"
+          >{{ item.labelName || item.cnName }}姓名</label
+        >
         <span v-if="item.defaultValue">{{ item.defaultValue }}</span>
         <template v-else>
           <span class="wf-componentview-placeholder"
@@ -20,7 +26,13 @@
         >
       </div>
       <div class="wf-componentview-border">
-        <label class="wf-componentview-label">{{ item.labelName || item.cnName }}联系方式</label>
+        <label
+          :class="[
+            'wf-componentview-label',
+            item.required === 1 ? 'wf-componentview-label-required' : '',
+          ]"
+          >{{ item.labelName || item.cnName }}联系方式</label
+        >
         <span v-if="item.defaultValue">{{ item.defaultValue }}</span>
         <template v-else>
           <span class="wf-componentview-placeholder"

+ 7 - 1
src/components/MobileXForm/components/XFexpectBeginTimeSelect.vue

@@ -14,7 +14,13 @@
     <div class="wf-overlay"></div>
     <div class="wf-componentview">
       <div class="wf-componentview-border">
-        <label class="wf-componentview-label">{{ item.labelName || item.cnName }}</label>
+        <label
+          :class="[
+            'wf-componentview-label',
+            item.required === 1 ? 'wf-componentview-label-required' : '',
+          ]"
+          >{{ item.labelName || item.cnName }}</label
+        >
         <span v-if="item.defaultValue" class="value">{{
           item.defaultValue
         }}</span>

+ 7 - 1
src/components/MobileXForm/components/XFfile.vue

@@ -14,7 +14,13 @@
     <div class="wf-overlay"></div>
     <div class="wf-componentview">
       <div class="wf-componentview-border">
-        <label class="wf-componentview-label">{{ item.labelName || item.cnName }}</label>
+        <label
+          :class="[
+            'wf-componentview-label',
+            item.required === 1 ? 'wf-componentview-label-required' : '',
+          ]"
+          >{{ item.labelName || item.cnName }}</label
+        >
         <i class="icon icon-camera"
           ><span
             style="

+ 7 - 1
src/components/MobileXForm/components/XFfile_download.vue

@@ -8,7 +8,13 @@
     <div class="wf-overlay"></div>
     <div class="wf-componentview">
       <div class="wf-componentview-border">
-        <label class="wf-componentview-label">{{ item.labelName || item.cnName }}</label>
+        <label
+          :class="[
+            'wf-componentview-label',
+            item.required === 1 ? 'wf-componentview-label-required' : '',
+          ]"
+          >{{ item.labelName || item.cnName }}</label
+        >
       </div>
       <template v-if="item.defaultValue && item.defaultValue.length">
         <div

+ 8 - 3
src/components/MobileXForm/components/XFmulticolumnSelect.vue

@@ -14,9 +14,14 @@
     <div class="wf-overlay"></div>
     <div class="wf-componentview">
       <div class="wf-componentview-border">
-        <label class="wf-componentview-label" style="align-self: flex-start">{{
-          item.labelName || item.cnName
-        }}</label>
+        <label
+          :class="[
+            'wf-componentview-label',
+            item.required === 1 ? 'wf-componentview-label-required' : '',
+          ]"
+          style="align-self: flex-start"
+          >{{ item.labelName || item.cnName }}</label
+        >
         <span v-if="item.defaultValue" class="value">{{
           item.defaultValue
         }}</span>

+ 7 - 1
src/components/MobileXForm/components/XFnumber.vue

@@ -14,7 +14,13 @@
     <div class="wf-overlay"></div>
     <div class="wf-componentview">
       <div class="wf-componentview-border">
-        <label class="wf-componentview-label">{{ item.labelName || item.cnName }}</label>
+        <label
+          :class="[
+            'wf-componentview-label',
+            item.required === 1 ? 'wf-componentview-label-required' : '',
+          ]"
+          >{{ item.labelName || item.cnName }}</label
+        >
         <span v-if="item.defaultValue">{{ item.defaultValue }}</span>
         <template v-else>
           <span class="wf-componentview-placeholder"

+ 7 - 1
src/components/MobileXForm/components/XFpic.vue

@@ -14,7 +14,13 @@
     <div class="wf-overlay"></div>
     <div class="wf-componentview">
       <div class="wf-componentview-border">
-        <label class="wf-componentview-label">{{ item.labelName || item.cnName }}</label>
+        <label
+          :class="[
+            'wf-componentview-label',
+            item.required === 1 ? 'wf-componentview-label-required' : '',
+          ]"
+          >{{ item.labelName || item.cnName }}</label
+        >
         <i class="icon icon-camera"
           ><span
             style="

+ 1 - 0
src/components/MobileXForm/components/XFrate.vue

@@ -18,6 +18,7 @@
           v-model="item.value"
           :cnName="item.labelName || item.cnName"
           :precisions="item.precisions"
+          :required="item.required"
           :setting="item.setting"
           :disabled="true"
         />

+ 8 - 3
src/components/MobileXForm/components/XFselect.vue

@@ -14,9 +14,14 @@
     <div class="wf-overlay"></div>
     <div class="wf-componentview">
       <div class="wf-componentview-border">
-        <label class="wf-componentview-label" style="align-self: flex-start">{{
-          item.labelName || item.cnName
-        }}</label>
+        <label
+          :class="[
+            'wf-componentview-label',
+            item.required === 1 ? 'wf-componentview-label-required' : '',
+          ]"
+          style="align-self: flex-start"
+          >{{ item.labelName || item.cnName }}</label
+        >
         <template v-if="item.precisions === 2">
           <span v-if="item.defaultValue" class="value">{{
             item.defaultValue

+ 8 - 3
src/components/MobileXForm/components/XFselectCustomerVolumeUpCell.vue

@@ -14,9 +14,14 @@
     <div class="wf-overlay"></div>
     <div class="wf-componentview">
       <div class="wf-componentview-border">
-        <label class="wf-componentview-label" style="align-self: flex-start">{{
-          item.labelName || item.cnName
-        }}</label>
+        <label
+          :class="[
+            'wf-componentview-label',
+            item.required === 1 ? 'wf-componentview-label-required' : '',
+          ]"
+          style="align-self: flex-start"
+          >{{ item.labelName || item.cnName }}</label
+        >
         <span v-if="item.defaultValue" class="value">{{
           item.defaultValue
         }}</span>

+ 8 - 3
src/components/MobileXForm/components/XFselectSkillCell.vue

@@ -14,9 +14,14 @@
     <div class="wf-overlay"></div>
     <div class="wf-componentview">
       <div class="wf-componentview-border">
-        <label class="wf-componentview-label" style="align-self: flex-start">{{
-          item.labelName || item.cnName
-        }}</label>
+        <label
+          :class="[
+            'wf-componentview-label',
+            item.required === 1 ? 'wf-componentview-label-required' : '',
+          ]"
+          style="align-self: flex-start"
+          >{{ item.labelName || item.cnName }}</label
+        >
         <span v-if="item.defaultValue" class="value">{{
           item.defaultValue
         }}</span>

+ 7 - 1
src/components/MobileXForm/components/XFtext.vue

@@ -10,7 +10,13 @@
     <div class="wf-overlay"></div>
     <div class="wf-componentview">
       <div class="wf-componentview-border">
-        <label class="wf-componentview-label">{{ item.labelName || item.cnName }}</label>
+        <label
+          :class="[
+            'wf-componentview-label',
+            item.required === 1 ? 'wf-componentview-label-required' : '',
+          ]"
+          >{{ item.labelName || item.cnName }}</label
+        >
         <span v-if="item.defaultValue">{{ item.defaultValue }}</span>
         <template v-else>
           <span class="wf-componentview-placeholder"

+ 7 - 1
src/components/MobileXForm/components/XFtextarea.vue

@@ -14,7 +14,13 @@
     <div class="wf-overlay"></div>
     <div class="wf-componentview">
       <div class="wf-componentview-border">
-        <label class="wf-componentview-label">{{ item.labelName || item.cnName }}</label>
+        <label
+          :class="[
+            'wf-componentview-label',
+            item.required === 1 ? 'wf-componentview-label-required' : '',
+          ]"
+          >{{ item.labelName || item.cnName }}</label
+        >
         <span v-if="item.defaultValue">{{ item.defaultValue }}</span>
         <template v-else>
           <span class="wf-componentview-placeholder"

+ 2 - 2
src/components/MobileXForm/settings/logicFormSetting.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="wf-field wf-setting-required">
-    <template v-if="component.fieldType !== 1">
+    <!-- <template v-if="component.fieldType !== 1">
       <div class="fieldname">逻辑表单</div>
       <setting-logic-form
         ref="SettingLogicForm"
@@ -9,7 +9,7 @@
         style="margin-bottom: 12px"
         @change="onLogicChange"
       />
-    </template>
+    </template> -->
     <div class="fieldname">其他配置</div>
     <label v-if="fieldAuth.nullEdit" class="fieldblock">
       <input

+ 1 - 1
src/views/demand/component/StatusRecordsItem/index.vue

@@ -29,7 +29,7 @@
         :column="2"
         title=""
         class="field-wrap"
-        style="width: 800px; margin-left: 30px"
+        style="width: 800px; margin-left: 30px; margin-top: 20px"
       >
         <el-descriptions-item :span="2" :label="item.cnName">
           <Table

+ 42 - 5
src/views/demand/component/StatusRecordsItem/table.vue

@@ -38,7 +38,15 @@
               )
             "
           >
-            <div
+            <img
+              v-for="(item1, index1) in scope.row[scope.column.property].value"
+              :key="index1"
+              :src="getFileTypeIcon(item1)"
+              alt=""
+              class="pic-icon"
+              @click="onPreview(item1, scope.row[scope.column.property].value)"
+            />
+            <!-- <div
               v-for="(item1, index1) in scope.row[scope.column.property].value"
               :key="index1"
               class="flex_row"
@@ -73,7 +81,7 @@
                 style="margin-left: 10px"
                 @click.native="onDownLoad(item1)"
               ></el-link>
-            </div>
+            </div> -->
           </template>
           <span v-else>{{ fieldFormatter(scope.row, scope.column) }}</span>
         </template>
@@ -85,6 +93,7 @@
 <script>
 import { downloadFile } from "@/utils";
 import { fieldExportAPI } from "@/api/serviceProviderOrder";
+import { getFileIconWithSuffix } from "@/utils";
 import Clipboard from "clipboard";
 let clipboard = null;
 export default {
@@ -176,6 +185,21 @@ export default {
   created() {},
   mounted() {},
   methods: {
+    getFileTypeIcon(file) {
+      const temps = file.url ? file.url.split(".") : [];
+      let ext = "";
+      if (file.fileType) {
+        ext = file.fileType;
+      } else if (temps.length > 0) {
+        ext = temps[temps.length - 1];
+      } else {
+        ext = "";
+      }
+      if (["jpg", "jpeg", "png"].includes(ext)) {
+        return file.url;
+      }
+      return getFileIconWithSuffix(ext);
+    },
     /**
      * 通过回调控制class
      */
@@ -285,16 +309,23 @@ export default {
         fieldId: this.component.id,
         ticketId: this.ticketId,
       })
-        .then(() => {
+        .then((res) => {
+          this.exportLoading = false;
+          if (res.code !== 0) {
+            this.$alert(res.msg, "提示", {
+              confirmButtonText: "确定",
+            });
+            return;
+          }
           this.$router.push({
             path: "/utils/downLoad/list",
             query: {
               bizType: "CUSTOM_FORM_FIELD",
             },
           });
-          this.exportLoading = false;
         })
-        .catch(() => {
+        .catch((err) => {
+          console.log(err.response);
           this.exportLoading = false;
         });
     },
@@ -303,4 +334,10 @@ export default {
 </script>
 
 <style scoped lang="scss">
+.pic-icon {
+  width: 30px;
+  height: 30px;
+  margin-right: 5px;
+  cursor: pointer;
+}
 </style>

+ 1 - 1
src/views/demand/component/TableProcessView.vue

@@ -20,7 +20,7 @@
             :column="2"
             title=""
             class="field-wrap"
-            style="width: 800px"
+            style="width: 800px; margin-bottom: 20px"
           >
             <div>{{ item1.name }}->{{ item2.cnName }}</div>
             <Table