wjj пре 3 недеља
родитељ
комит
f01d464160
1 измењених фајлова са 40 додато и 17 уклоњено
  1. 40 17
      src/views/qw/externalContact/collection.vue

+ 40 - 17
src/views/qw/externalContact/collection.vue

@@ -3,18 +3,19 @@
     <el-form validate-on-rule-change :rules="rules" ref="form" :model="form" label-width="140px">
       <el-form-item label="小程序" prop="appId">
         <el-select v-model="form.appId" placeholder="小程序" clearable>
-          <el-option v-for="dict in sourceList" :key="dict.dictValue1" :label="dict.dictLabel" :value="dict.dictValue1" />
+          <el-option v-for="dict in sourceList" :key="dict.dictValue1" :label="dict.dictLabel"
+            :value="dict.dictValue1" />
         </el-select>
       </el-form-item>
       <el-form-item label="信息模板" prop="questionId">
         <el-select @change="selectQuestion" v-model="form.questionId" placeholder="请选择问答">
           <el-option v-for="dict in questionOptions" :key="dict.dictValue" :label="dict.dictLabel"
-                     :value="parseInt(dict.dictValue)" />
+            :value="parseInt(dict.dictValue)" />
         </el-select>
       </el-form-item>
 
       <!-- 动态渲染问题区域 -->
-      <div v-if="form.answers && form.answers.length > 0">
+      <!-- <div v-if="form.answers && form.answers.length > 0">
         <div style="margin-bottom: 20px;margin-top: 20px;" v-for="(answer, index) in form.answers" :key="index">
           <div style="margin-bottom: 20px;margin-top: 20px;">
             <span style="font-size: 15px;font-weight: bold; margin-left: 31px">{{ answer.title }}</span>
@@ -30,8 +31,30 @@
             </el-checkbox-group>
           </div>
         </div>
+      </div> -->
+
+      <!-- 动态渲染问题区域 -->
+      <div v-if="form.answers && form.answers.length > 0">
+        <div style="margin-bottom: 20px;margin-top: 20px;" v-for="(answer, index) in form.answers" :key="index">
+          <div style="margin-bottom: 20px;margin-top: 20px;">
+            <span style="font-size: 15px;font-weight: bold; margin-left: 31px">{{ answer.title }}</span>
+          </div>
+          <div style="margin-left: 31px;">
+            <el-checkbox-group v-model="answer.value" size="mini" :disabled="!canEditAnswers">
+              <div v-for="option in answer.options" :key="option.value" style="margin-bottom: 10px;">
+                <el-checkbox :label="option.value">
+                  {{ option.name }}
+                </el-checkbox>
+                <el-input v-if="option.open === true" v-model="option.inputValue" size="mini"
+                  :placeholder="option.placeholder || '请输入'" style="width: 200px; margin-left: 10px;"
+                  :disabled="!canEditAnswers" @click.stop />
+              </div>
+            </el-checkbox-group>
+          </div>
+        </div>
       </div>
 
+
       <el-form-item label="用户姓名" prop="userName">
         <el-input v-model="form.userName" placeholder="请输入用户姓名"></el-input>
       </el-form-item>
@@ -45,7 +68,7 @@
         </el-select>
       </el-form-item>
       <el-form-item label="年龄" prop="age">
-        <el-input-number v-model="form.age" placeholder="请输入年龄"  style="width: 20%"/>
+        <el-input-number v-model="form.age" placeholder="请输入年龄" style="width: 20%" />
       </el-form-item>
 
       <el-form-item label="过敏情况" prop="allergy">
@@ -65,7 +88,7 @@
       <el-form-item v-if="form.isPackage == 1" label="产品疗法" prop="packageId">
         <el-select filterable v-model="form.packageId" placeholder="请选择产品疗法">
           <el-option v-for="dict in privatePackageOptions" :key="dict.dictValue" :label="dict.dictLabel"
-                     :value="parseInt(dict.dictValue)" />
+            :value="parseInt(dict.dictValue)" />
         </el-select>
       </el-form-item>
       <el-form-item v-if="form.packageId && form.isPackage && form.isPackage == 1" label="支付类型" prop="payType">
@@ -74,8 +97,8 @@
           <el-radio :label="2">物流代收</el-radio>
         </el-radio-group>
       </el-form-item>
-      <el-form-item v-if="form.packageId && form.payType == 2 && form.isPackage && form.isPackage == 1"
-                    label="预付金额" prop="amount">
+      <el-form-item v-if="form.packageId && form.payType == 2 && form.isPackage && form.isPackage == 1" label="预付金额"
+        prop="amount">
         <el-input v-model="form.amount" placeholder="请输入物流代收金额" type="number" />
       </el-form-item>
     </el-form>
@@ -84,7 +107,7 @@
     </div>
 
     <el-dialog :title="collectionForm.title" v-if="collectionForm.open" :visible.sync="collectionForm.open"
-               width="450px" append-to-body>
+      width="450px" append-to-body>
       <div style="padding-bottom:15px;">
         <img :src="codeImage" width="400px">
       </div>
@@ -99,7 +122,7 @@
 import { questionOptions, getAnswer } from "@/api/hisStore/answer";
 import { allPrivatePackage } from "@/api/store/package";
 import { options } from "@/api/course/coursePlaySourceConfig";
-import { getInfo, addCollection, updateCollection, getWxaCodeCollectionUnLimit,getSalesHasCollectionPermission } from "@/api/hisStore/collection";
+import { getInfo, addCollection, updateCollection, getWxaCodeCollectionUnLimit, getSalesHasCollectionPermission } from "@/api/hisStore/collection";
 
 export default {
   name: "collection",
@@ -129,7 +152,7 @@ export default {
       originalAnswers: null, // 保存原始 answers 数据
       isAnswersModified: 0, // 0-未修改, 1-已修改
       isSalesProxyFill: true, // 控制问题是否可编辑
-      sourceList:[],
+      sourceList: [],
       extraParams: {
         companyId: null,
         companyUserId: null
@@ -220,7 +243,7 @@ export default {
       return this.isSalesProxyFill === true;
     }
   },
-// 监听 answers 的变化
+  // 监听 answers 的变化
   watch: {
     'form.answers': {
       handler(newVal) {
@@ -265,7 +288,7 @@ export default {
       link.click();
       document.body.removeChild(link);
     },
-    handleShare(id,appId) {
+    handleShare(id, appId) {
       let loadingRock = this.$loading({
         lock: true,
         text: '生成二维码中~~请不要刷新页面!!',
@@ -273,7 +296,7 @@ export default {
         background: 'rgba(0, 0, 0, 0.7)'
       });
 
-      getWxaCodeCollectionUnLimit(id,appId).then(response => {
+      getWxaCodeCollectionUnLimit(id, appId).then(response => {
         this.codeImage = response.url
         this.collectionForm.open = true;
         this.collectionForm.name = id;
@@ -375,8 +398,8 @@ export default {
           if (origAnswer.value.length !== currAnswer.value.length) return false;
 
           // 排序后比较(因为顺序可能不影响业务逻辑)
-          const sortedOrig = [...origAnswer.value].sort((a,b) => a-b);
-          const sortedCurr = [...currAnswer.value].sort((a,b) => a-b);
+          const sortedOrig = [...origAnswer.value].sort((a, b) => a - b);
+          const sortedCurr = [...currAnswer.value].sort((a, b) => a - b);
 
           for (let j = 0; j < sortedOrig.length; j++) {
             if (sortedOrig[j] !== sortedCurr[j]) return false;
@@ -454,7 +477,7 @@ export default {
               this.open = false;
               this.$parent.$parent.closeCollection();
               this.$refs['form'].resetFields();
-              this.handleShare(res.data,appId);
+              this.handleShare(res.data, appId);
             });
           } else {
             addCollection(submitData).then(res => {
@@ -462,7 +485,7 @@ export default {
               this.open = false;
               this.$parent.$parent.closeCollection();
               this.$refs['form'].resetFields();
-              this.handleShare(res.data,appId);
+              this.handleShare(res.data, appId);
             });
           }
         }