|  |  | 
 |  |  |   introduction: (state) => state.user.introduction, | 
 |  |  |   roles: (state) => state.user.roles, | 
 |  |  |   permissions: (state) => state.user.permissions, | 
 |  |  |   leavehospitaldistrictcodes: (state) => state.user.leavehospitaldistrictcodes, | 
 |  |  |   leaveldeptcodes: (state) => state.user.leaveldeptcodes, | 
 |  |  |   permission_routes: (state) => state.permission.routes, | 
 |  |  |   topbarRouters: (state) => state.permission.topbarRouters, | 
 |  |  |   defaultRoutes: (state) => state.permission.defaultRoutes, | 
 
 |  |  | 
 |  |  |     token: getToken(), | 
 |  |  |     name: '', | 
 |  |  |     avatar: '', | 
 |  |  |     leavehospitaldistrictcodes:[], | 
 |  |  |     leaveldeptcodes:[], | 
 |  |  |     roles: [], | 
 |  |  |     permissions: [], | 
 |  |  |     // 服务类型 | 
 |  |  | 
 |  |  |     }, | 
 |  |  |     SET_Serviceauthority: (state, Serviceauthority) => { | 
 |  |  |       state.Serviceauthority = Serviceauthority | 
 |  |  |     }, | 
 |  |  |     SET_leavehospitaldistrictcodes: (state, leavehospitaldistrictcodes) => { | 
 |  |  |       state.leavehospitaldistrictcodes = leavehospitaldistrictcodes | 
 |  |  |     }, | 
 |  |  |     SET_leaveldeptcodes: (state, leaveldeptcodes) => { | 
 |  |  |       state.leaveldeptcodes = leaveldeptcodes | 
 |  |  |     } | 
 |  |  |   }, | 
 |  |  |  | 
 |  |  | 
 |  |  |             commit('SET_ROLES', ['ROLE_DEFAULT']) | 
 |  |  |           } | 
 |  |  |           commit('SET_NAME', user.userName) | 
 |  |  |           commit('SET_leavehospitaldistrictcodes', user.leavehospitaldistrictcodes) | 
 |  |  |           commit('SET_leaveldeptcodes', user.leaveldeptcodes) | 
 |  |  |           commit('SET_AVATAR', avatar) | 
 |  |  |           resolve(res) | 
 |  |  |         }).catch(error => { | 
 
 |  |  | 
 |  |  |   }); | 
 |  |  |   return time_str; | 
 |  |  | } | 
 |  |  | // 出院/入院天数计算 | 
 |  |  | export function Daycount(dateString1, dateString2){ | 
 |  |  | // 将日期字符串转换为日期对象 | 
 |  |  | var date1 = new Date(dateString1); | 
 |  |  | var date2 = new Date(dateString2); | 
 |  |  |  | 
 |  |  | // 计算时间差(毫秒) | 
 |  |  | var timeDifference = date2 - date1; | 
 |  |  |  | 
 |  |  | // 将时间差转换为天数 | 
 |  |  | var daysDifference = Math.ceil(timeDifference / (1000 * 3600 * 24)); | 
 |  |  |  | 
 |  |  | return daysDifference; | 
 |  |  | } | 
 |  |  | // 过滤器 | 
 |  |  | export function formatTime(val) { | 
 |  |  |   if (val) { | 
 
 |  |  | 
 |  |  |             width="160" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |               <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column | 
 |  |  | 
 |  |  |             width="160" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |               <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column | 
 |  |  | 
 |  |  |             width="160" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |               <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column | 
 
 |  |  | 
 |  |  |             width="160" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |               <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column | 
 
 |  |  | 
 |  |  |           width="160" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.admindate) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.admindate) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <!-- <el-table-column | 
 |  |  | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span v-if="scope.row.sendType != 3">{{ | 
 |  |  |               parseTime(scope.row.createTime) | 
 |  |  |               formatTime(scope.row.createTime) | 
 |  |  |             }}</span> | 
 |  |  |             <span v-else>即刻发送</span> | 
 |  |  |           </template> | 
 |  |  | 
 |  |  |           width="160" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.finishtime) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.finishtime) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 
 |  |  | 
 |  |  |           width="160" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 
 |  |  | 
 |  |  |           width="160" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.admindate) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.admindate) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  | 
 |  |  |           width="160" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.finishtime) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.finishtime) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |  | 
 
 |  |  | 
 |  |  |     <div class="Followuserinfo"> | 
 |  |  |       <div> | 
 |  |  |         <div class="userinfo-text"> | 
 |  |  |           {{ sendname }}<span>患者服务详情</span> | 
 |  |  |           <!-- <span>患者服务详情</span> --> | 
 |  |  |           <div class="headline"> | 
 |  |  |               <div>患者服务详情</div> | 
 |  |  |               <div style="margin-left: 20px"> | 
 |  |  |                     <el-button | 
 |  |  |                     v-if="!Whetherall" | 
 |  |  |                       type="primary" | 
 |  |  |                       @click="getTaskservelist()" | 
 |  |  |                     >查看患者全部服务</el-button> | 
 |  |  |                     <el-button | 
 |  |  |                     v-else | 
 |  |  |                       type="success" | 
 |  |  |                       @click="getTaskservelist(taskid)" | 
 |  |  |                     >查看患者本次服务信息</el-button> | 
 |  |  |               </div> | 
 |  |  |             </div> | 
 |  |  |           <!-- <el-button type="success">随访后短信</el-button> --> | 
 |  |  |         </div> | 
 |  |  |       </div> | 
 |  |  | 
 |  |  |             width="210" | 
 |  |  |           > | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column | 
 |  |  |           <!-- <el-table-column | 
 |  |  |             label="操作" | 
 |  |  |             fixed="right" | 
 |  |  |             align="center" | 
 |  |  | 
 |  |  |                 ></el-button | 
 |  |  |               > | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |           </el-table-column> --> | 
 |  |  |         </el-table> | 
 |  |  |       </div> | 
 |  |  |     </div> | 
 |  |  | 
 |  |  |       radio: "2", | 
 |  |  |       taskname: "", | 
 |  |  |       tableDatatop: [], //题目表 | 
 |  |  |       Whetherall:false, //是否全部记录展示 | 
 |  |  |       logsheetlist: [], | 
 |  |  |       sendname: null, | 
 |  |  |       serviceType: null, | 
 |  |  | 
 |  |  |     this.patid = this.$route.query.patid; | 
 |  |  |     this.serviceType = this.$route.query.serviceType; | 
 |  |  |     this.getsearchrResults(); | 
 |  |  |     this.getTaskservelist(); | 
 |  |  |     this.getTaskservelist(this.taskid); | 
 |  |  |   }, | 
 |  |  |  | 
 |  |  |   methods: { | 
 |  |  | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     // 获取患者记录 | 
 |  |  |     getTaskservelist() { | 
 |  |  |     getTaskservelist(taskid) { | 
 |  |  |       if (taskid) { | 
 |  |  |         this.Whetherall=false; | 
 |  |  |       }else{ | 
 |  |  |         this.Whetherall=true; | 
 |  |  |       } | 
 |  |  |       getTaskservelist({ | 
 |  |  |         patid: this.patid, | 
 |  |  |         taskid: taskid, | 
 |  |  |       }).then((res) => { | 
 |  |  |         if (res.code == 200) { | 
 |  |  |           this.logsheetlist = res.rows; | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     Seedetails() {}, | 
 |  |  |     Seedetails(row) { | 
 |  |  |       this.$modal.confirm('是否查看任务为"' + optionids + '"的服务项?').then(function () { | 
 |  |  |         }).then(() => { | 
 |  |  |           this.getList(); | 
 |  |  |         }).catch(() => { }); | 
 |  |  |     }, | 
 |  |  |   }, | 
 |  |  | }; | 
 |  |  | </script> | 
 |  |  | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | .headline { | 
 |  |  |     font-size: 24px; | 
 |  |  |     height: 40px; | 
 |  |  |     border-left: 5px solid #41a1be; | 
 |  |  |     padding-left: 5px; | 
 |  |  |     margin-bottom: 10px; | 
 |  |  |     display: flex; | 
 |  |  |     // justify-content: space-between; | 
 |  |  |     .Add-details { | 
 |  |  |       font-size: 18px; | 
 |  |  |       color: #02a7f0; | 
 |  |  |       cursor: pointer; | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | ::v-deep.offside-value .el-radio__label { | 
 |  |  |   color: #fff; | 
 |  |  | } | 
 
 |  |  | 
 |  |  |           width="160" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.admindate) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.admindate) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  | 
 |  |  |           width="160" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.finishtime) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.finishtime) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |  | 
 
 |  |  | 
 |  |  |           width="160" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 
 |  |  | 
 |  |  |                       width="160" | 
 |  |  |                     > | 
 |  |  |                       <template slot-scope="scope"> | 
 |  |  |                         <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |                         <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |                       </template> | 
 |  |  |                     </el-table-column> | 
 |  |  |                     <el-table-column | 
 
 |  |  | 
 |  |  |           width="160" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 
 |  |  | 
 |  |  |       <!-- 宣教内容 --> | 
 |  |  |       <div v-if="Editprogress == 2"> | 
 |  |  |         <el-row :gutter="20"> | 
 |  |  |           <el-col :span="4"><div class="leftvlue-jbxx">宣教内容</div></el-col> | 
 |  |  |           <el-col :span="4"> | 
 |  |  |             <div class="leftvlue-jbxx">宣教内容</div> | 
 |  |  |           </el-col> | 
 |  |  |         </el-row> | 
 |  |  |  | 
 |  |  |         <div> | 
 |  |  | 
 |  |  |             label-width="100px" | 
 |  |  |             class="demo-ruleForm" | 
 |  |  |           > | 
 |  |  |             <el-row gutter="20"> | 
 |  |  |             <el-row :gutter="20"> | 
 |  |  |               <el-col :span="12"> | 
 |  |  |                 <el-form-item label="资料形式" prop="region"> | 
 |  |  |                   <el-select | 
 |  |  | 
 |  |  |                   <el-button type="info" @click="closeFm('ruleForm')" | 
 |  |  |                     >关闭</el-button | 
 |  |  |                   > | 
 |  |  |                 </div></el-col | 
 |  |  |               > | 
 |  |  |                 </div> | 
 |  |  |               </el-col> | 
 |  |  |             </el-row> | 
 |  |  |           </el-form> | 
 |  |  |         </div> | 
 |  |  | 
 |  |  |           url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100", | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |       content: "", //最终保存的内容 | 
 |  |  |       content: `<p>测试</p><video class="ql-video" controls="controls" controlslist="nofullscreen" type="video/mp4" style="object-fit:fill;width: 100%;" preload="auto" playsinline="true" x-webkit-airplay="allow" x5-video-orientation="portraint" x5-playsinline="true" x5-video-player-fullscreen="true" src="http://218.108.11.22:8093/profile-api/upload/vadio/营养泵操作规范.mp4"></video><video class="ql-video" controls="controls" controlslist="nofullscreen" type="video/mp4" style="object-fit:fill;width: 100%;" preload="auto" playsinline="true" x-webkit-airplay="allow" x5-video-orientation="portraint" x5-playsinline="true" x5-video-player-fullscreen="true" src="http://218.108.11.22:8093/profile-api/upload/vadio/注射器推注.mp4"></video><p>321</p>"`, //最终保存的内容 | 
 |  |  |       fileName: "", //文件名 | 
 |  |  |       dynamicTags: [], | 
 |  |  |       inputVisible: false, | 
 |  |  | 
 |  |  |       deptList: [], | 
 |  |  |       tempDetpRelevanceslist: [], | 
 |  |  |       props: { multiple: true, value: "deptId", label: "deptName" }, | 
 |  |  |       // 内网的部分(文件) | 
 |  |  |       oldPattern: "http://192.168.191.181:8095/profile/upload", | 
 |  |  |       // 内网的部分(文件) | 
 |  |  |       oldPatternhtml: "/http:\/\/192\.168\.191\.181:8095\/profile\/upload\//g", | 
 |  |  |       // 外网部分(文件) | 
 |  |  |       newPattern: "http://218.108.11.22:8093/profile-api/upload", | 
 |  |  |  | 
 |  |  |       xjxsoptions: [ | 
 |  |  |         { | 
 |  |  |           value: "1", | 
 |  |  | 
 |  |  |       if (this.id) { | 
 |  |  |         getlibraryinfo({ id: this.id }).then((res) => { | 
 |  |  |           this.ruleForm = res.data[0]; | 
 |  |  |           this.ruleForm.campus = this.ruleForm.campus.split(","); | 
 |  |  |           if (this.ruleForm.campus) | 
 |  |  |             this.ruleForm.campus = this.ruleForm.campus.split(","); | 
 |  |  |           this.dynamicTags = res.data[0].heLibraryTagList.map( | 
 |  |  |             this.processElement | 
 |  |  |           ); | 
 |  |  |           this.Getmissioncontent(this.ruleForm.htmlRichText); | 
 |  |  |           if (this.ruleForm.htmlRichText) { | 
 |  |  |             this.Getmissioncontent(this.ruleForm.htmlRichText); | 
 |  |  |           } | 
 |  |  |           if (this.ruleForm.deptNames) { | 
 |  |  |             this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames); | 
 |  |  |           } | 
 |  |  | 
 |  |  |       listDept(this.queryParams).then((response) => { | 
 |  |  |         this.deptList = this.handleTree(response.data, "deptId"); | 
 |  |  |       }); | 
 |  |  |       this.loading = false; | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |       // ------------------ | 
 |  |  |  | 
 |  |  |       // let html = | 
 |  |  |       //   '<p>测试</p><video class="ql-video" controls="controls" controlslist="nofullscreen" type="video/mp4" style="object-fit:fill;width: 100%;" preload="auto" playsinline="true" x-webkit-airplay="allow" x5-video-orientation="portraint" x5-playsinline="true" x5-video-player-fullscreen="true" src="http://192.168.191.181:8095/profile/upload/vadio/营养泵介绍.mp4"></video><p>测试111</p><video class="ql-video" controls="controls" controlslist="nofullscreen" type="video/mp4" style="object-fit:fill;width: 100%;" preload="auto" playsinline="true" x-webkit-airplay="allow" x5-video-orientation="portraint" x5-playsinline="true" x5-video-player-fullscreen="true" src="http://192.168.191.181:8095/profile/upload/vadio/注射器推注.mp4"></video><p><br></p>'; | 
 |  |  |       // // html = html.parserdom(this.oldPattern, this.newPattern); | 
 |  |  |       // html = this.parserdom(html); | 
 |  |  |       // console.log(html, "html"); | 
 |  |  |  | 
 |  |  |       // this.loading = false; | 
 |  |  |     }, | 
 |  |  |     // parser | 
 |  |  |     parserdom(html) { | 
 |  |  |       // 创建一个新的DOM解析器 | 
 |  |  |       var parser = new DOMParser(); | 
 |  |  |       // 将字符串解析为文档对象 | 
 |  |  |       var doc = parser.parseFromString(html, "text/html"); | 
 |  |  |  | 
 |  |  |       // 定义要替换的新旧URL | 
 |  |  |       var oldUrlBase = "http://192.168.191.181:8095/profile/upload"; | 
 |  |  |       var newUrlBase = "http://218.108.11.22:8093/profile-api/upload"; | 
 |  |  |  | 
 |  |  |       // 获取所有的video元素 | 
 |  |  |       var videos = doc.querySelectorAll("video"); | 
 |  |  |  | 
 |  |  |       // 遍历所有的video元素并替换src属性 | 
 |  |  |       videos.forEach(function (video) { | 
 |  |  |         var src = video.getAttribute("src"); | 
 |  |  |         if (src.startsWith(oldUrlBase)) { | 
 |  |  |           video.setAttribute("src", src.replace(oldUrlBase, newUrlBase)); | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |  | 
 |  |  |       // 将修改后的文档转换回字符串 | 
 |  |  |       var newContent = doc.body.innerHTML; | 
 |  |  |       return newContent; | 
 |  |  |     }, | 
 |  |  |     submitForm(formName) { | 
 |  |  |       let tgs = []; | 
 |  |  |       this.dynamicTags.forEach((item) => { | 
 |  |  |         tgs.push(item.tagname); | 
 |  |  |       }); | 
 |  |  |       this.ruleForm.campus = this.ruleForm.campus.join(","); | 
 |  |  |       if (this.ruleForm.campus) { | 
 |  |  |         this.ruleForm.campus = this.ruleForm.campus.join(","); | 
 |  |  |       } | 
 |  |  |       this.ruleForm.labelInfo = tgs.length != 0 ? tgs.join(", ") : ""; | 
 |  |  |       this.ruleForm.otherdata = JSON.stringify(this.variablelist); | 
 |  |  |       this.ruleForm.hetype = 1; | 
 |  |  | 
 |  |  |         this.ruleForm.suitway.length != 0 | 
 |  |  |           ? this.ruleForm.suitway.join(",") | 
 |  |  |           : ""; | 
 |  |  |  | 
 |  |  |       addrichText({ | 
 |  |  |         content: this.content, | 
 |  |  |         content: this.parserdom(this.content), | 
 |  |  |         fileName: this.generateRandomHtmlFilename(), | 
 |  |  |       }).then((res) => { | 
 |  |  |         this.ruleForm.richText = res.msg; | 
 |  |  |         this.ruleForm.htmlRichText = this.replaceIpAndPort(res.msg); | 
 |  |  |         this.ruleForm.htmlRichText = this.removePathSegment(this.ruleForm.htmlRichText,'prod-api'); | 
 |  |  |         console.log(this.ruleForm.htmlRichText,'this.ruleForm.htmlRichText'); | 
 |  |  |         console.log(this.ruleForm.richText, "this.ruleForm.richText"); | 
 |  |  |         // 处理内网html | 
 |  |  |         addrichText({ | 
 |  |  |           // content: this.content, | 
 |  |  |           fileName: this.generateRandomHtmlFilename(), | 
 |  |  |         }).then((resf) => { | 
 |  |  |           this.ruleForm.htmlRichText = resf.msg.replace( | 
 |  |  |             this.newPattern, | 
 |  |  |             this.oldPattern | 
 |  |  |           ); | 
 |  |  |           console.log(this.ruleForm.htmlRichText, "this.ruleForm.htmlRichText"); | 
 |  |  |  | 
 |  |  |         if (this.id) { | 
 |  |  |           this.ruleForm.isoperation = 2; | 
 |  |  |           compilelibrary(this.ruleForm).then((res) => { | 
 |  |  |             this.$modal.msgSuccess("编辑成功"); | 
 |  |  |             this.confirmillness(); | 
 |  |  |             this.$router.go(-1); | 
 |  |  |           }); | 
 |  |  |         } else { | 
 |  |  |           this.ruleForm.isoperation = 1; | 
 |  |  |           compilelibrary(this.ruleForm).then((res) => { | 
 |  |  |             this.$modal.msgSuccess("新增成功"); | 
 |  |  |             this.confirmillness(res.data); | 
 |  |  |             this.$router.go(-1); | 
 |  |  |           }); | 
 |  |  |         } | 
 |  |  |           if (this.id) { | 
 |  |  |             this.ruleForm.isoperation = 2; | 
 |  |  |             compilelibrary(this.ruleForm).then((res) => { | 
 |  |  |               if (res.code == 200) { | 
 |  |  |                 this.$modal.msgSuccess("编辑成功"); | 
 |  |  |                 this.confirmillness(); | 
 |  |  |                 this.$router.go(-1); | 
 |  |  |               } | 
 |  |  |             }); | 
 |  |  |           } else { | 
 |  |  |             this.ruleForm.isoperation = 1; | 
 |  |  |             compilelibrary(this.ruleForm).then((res) => { | 
 |  |  |               if (res.code == 200) { | 
 |  |  |                 this.$modal.msgSuccess("新增成功"); | 
 |  |  |                 this.confirmillness(res.data); | 
 |  |  |                 this.$router.go(-1); | 
 |  |  |               } | 
 |  |  |             }); | 
 |  |  |           } | 
 |  |  |         }); | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     replaceIpAndPort(path) { | 
 |  |  |       // 正则表达式匹配IP地址和端口 | 
 |  |  |       const ipPortRegex = /(\b(?:\d{1,3}\.){3}\d{1,3}(?::\d+)?)/; | 
 |  |  |       // 替换为指定的IP地址和端口 | 
 |  |  |       return path.replace(ipPortRegex, "192.168.191.181:8095"); | 
 |  |  |     }, | 
 |  |  |     removePathSegment(url, segment) { | 
 |  |  |     // 使用正则表达式全局匹配并替换掉指定的路径段 | 
 |  |  |     return url.replace(new RegExp('/' + segment + '/?', 'g'), '/'); | 
 |  |  | }, | 
 |  |  |  | 
 |  |  |     generateRandomHtmlFilename() { | 
 |  |  |     // 生成一个0到1之间的随机数,并将其转换为字符串 | 
 |  |  |     let randomNumber = Math.random().toString(); | 
 |  |  |     // 移除前面的0和小数点 | 
 |  |  |     randomNumber = randomNumber.substring(6); | 
 |  |  |     // 确保生成的随机数是一定长度的,例如8位 | 
 |  |  |     while (randomNumber.length < 8) { | 
 |  |  |         randomNumber = '0' + randomNumber; | 
 |  |  |     } | 
 |  |  |     // 拼接上.html后缀 | 
 |  |  |     return randomNumber + '.html'; | 
 |  |  | }, | 
 |  |  |       // 生成一个0到1之间的随机数,并将其转换为字符串 | 
 |  |  |       let randomNumber = Math.random().toString(); | 
 |  |  |       // 移除前面的0和小数点 | 
 |  |  |       randomNumber = randomNumber.substring(6); | 
 |  |  |       // 确保生成的随机数是一定长度的,例如8位 | 
 |  |  |       while (randomNumber.length < 8) { | 
 |  |  |         randomNumber = "0" + randomNumber; | 
 |  |  |       } | 
 |  |  |       // 拼接上.html后缀 | 
 |  |  |       return randomNumber + ".html"; | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     // 保存疾病 | 
 |  |  |     confirmillness(guid) { | 
 |  |  | 
 |  |  |       console.log("上传成功"); | 
 |  |  |       //拼接出上传的图片在服务器的完整地址 | 
 |  |  |       let imgUrl = res.url; | 
 |  |  |       imgUrl=this.replaceIpAndPort(imgUrl) | 
 |  |  |       console.log(res.url); | 
 |  |  |  | 
 |  |  |       imgUrl = imgUrl.replace(this.newPattern, this.oldPattern); | 
 |  |  |       console.log(imgUrl, "imgUrl"); | 
 |  |  |  | 
 |  |  |       let type = imgUrl.substring(imgUrl.lastIndexOf(".") + 1); | 
 |  |  |       this.fileName = this.getFileNameFromPath(res.url); | 
 |  |  |  | 
 |  |  | 
 |  |  |       console.log(res); | 
 |  |  |       console.log(file); | 
 |  |  |     }, | 
 |  |  |     // 上传图片成功 | 
 |  |  |     // 上传word成功 | 
 |  |  |     uploadEditorSuccessword(res, file) { | 
 |  |  |       console.log("上传成功"); | 
 |  |  |       const data = null; | 
 |  |  |       console.log("上传word文件成功"); | 
 |  |  |       console.log(res, file, "word"); | 
 |  |  |       let fileurl = res.url.replace(this.newPattern, this.oldPattern); | 
 |  |  |       axios | 
 |  |  |         .get(res.url) | 
 |  |  |         .get(fileurl) | 
 |  |  |         .then((response) => { | 
 |  |  |           console.log(response.data, "数据"); // 输出获取到的文件内容 | 
 |  |  |           this.content = response.data; | 
 |  |  |           this.texturl = res.url; | 
 |  |  |           this.$nextTick(() => { | 
 |  |  |             this.content = response.data; | 
 |  |  |           }); | 
 |  |  |           this.fileName = this.getFileNameFromPath(response.url); | 
 |  |  |           console.log(this.fileName, "this.fileName"); | 
 |  |  |         }) | 
 |  |  | 
 |  |  |           console.error("Failed to fetch file:", error); | 
 |  |  |         }); | 
 |  |  |     }, | 
 |  |  |     // 处理url | 
 |  |  |   }, | 
 |  |  | }; | 
 |  |  | </script> | 
 |  |  | 
 |  |  | .Questionnairemanagement { | 
 |  |  |   // display: flex; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .sidecolumn { | 
 |  |  |   // width: 300px; | 
 |  |  |   // min-height: 100vh; | 
 |  |  | 
 |  |  |   -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), | 
 |  |  |     0 0 6px 0 rgba(0, 0, 0, 0.04); | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .leftvlue { | 
 |  |  |   //   display: flex; | 
 |  |  |   //   flex: 1; | 
 |  |  | 
 |  |  |   border: 1px solid #dcdfe6; | 
 |  |  |   -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), | 
 |  |  |     0 0 6px 0 rgba(0, 0, 0, 0.04); | 
 |  |  |  | 
 |  |  |   .mulsz { | 
 |  |  |     font-size: 20px; | 
 |  |  |   } | 
 |  |  |  | 
 |  |  |   .leftvlue-jbxx { | 
 |  |  |     margin-bottom: 50px; | 
 |  |  |     font-size: 20px; | 
 |  |  |  | 
 |  |  |     span { | 
 |  |  |       position: absolute; | 
 |  |  |       right: 80px; | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  |  | 
 |  |  |   .demo-cascader { | 
 |  |  |     margin-right: 20px; | 
 |  |  |   } | 
 |  |  |  | 
 |  |  |   .PreviewTemplate { | 
 |  |  |     color: #02a7f0; | 
 |  |  |     cursor: pointer; | 
 |  |  | 
 |  |  |     margin: 0 20px; | 
 |  |  |   } | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .xinz-inf { | 
 |  |  |   font-size: 18px; | 
 |  |  |   white-space: nowrap; | 
 |  |  | 
 |  |  |   .el-tag + .el-tag { | 
 |  |  |     margin-left: 10px; | 
 |  |  |   } | 
 |  |  |  | 
 |  |  |   .button-new-tag { | 
 |  |  |     margin-left: 10px; | 
 |  |  |     height: 32px; | 
 |  |  | 
 |  |  |     padding-top: 0; | 
 |  |  |     padding-bottom: 0; | 
 |  |  |   } | 
 |  |  |  | 
 |  |  |   .input-new-tag { | 
 |  |  |     width: 90px; | 
 |  |  |     margin-left: 10px; | 
 |  |  |     vertical-align: bottom; | 
 |  |  |   } | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .preview-left { | 
 |  |  |   margin: 20px; | 
 |  |  |   //   margin: 20px; | 
 |  |  | 
 |  |  |   border: 1px solid #dcdfe6; | 
 |  |  |   -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), | 
 |  |  |     0 0 6px 0 rgba(0, 0, 0, 0.04); | 
 |  |  |  | 
 |  |  |   .topic-dev { | 
 |  |  |     margin-bottom: 25px; | 
 |  |  |     font-size: 20px !important; | 
 |  |  |  | 
 |  |  |     .dev-text { | 
 |  |  |       margin-bottom: 10px; | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .addtopic { | 
 |  |  |   margin-top: 30px; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .presentation { | 
 |  |  |   margin: 20px 0; | 
 |  |  |   display: flex; | 
 |  |  |  | 
 |  |  |   .presentation-left { | 
 |  |  |     width: 50%; | 
 |  |  |     height: 500px; | 
 |  |  |  | 
 |  |  |     .button-textxg { | 
 |  |  |       color: #024df0; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     .button-textsc { | 
 |  |  |       color: #f52727; | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  |  | 
 |  |  |   .presentation-right { | 
 |  |  |     width: 50%; | 
 |  |  |     height: 500px; | 
 |  |  |     padding: 20px; | 
 |  |  |     font-size: 18px; | 
 |  |  |     border: 1px solid #909091; | 
 |  |  |  | 
 |  |  |     span { | 
 |  |  |       padding: 0 35px; | 
 |  |  |       margin-right: 10px; | 
 |  |  |       border-bottom: 1px solid #909091; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     .headline { | 
 |  |  |       font-size: 20px; | 
 |  |  |       border-left: 3px solid #41a1be; | 
 |  |  | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | } | 
 |  |  |  | 
 |  |  | ::v-deep .addtopic-input { | 
 |  |  |   input { | 
 |  |  |     background: #02a7f0; | 
 |  |  | 
 |  |  |     width: 150px; | 
 |  |  |   } | 
 |  |  | } | 
 |  |  |  | 
 |  |  | ::v-deep.el-step.is-vertical .el-step__title { | 
 |  |  |   font-size: 25px; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | ::v-deep.el-input--medium { | 
 |  |  |   font-size: 18px !important; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | ::v-deep.ruleFormaa.el-select { | 
 |  |  |   display: inline-block; | 
 |  |  |   position: relative; | 
 |  |  |   width: 700px; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .el-select__tags { | 
 |  |  |   font-size: 20px; | 
 |  |  |   max-width: 888px !important; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | ::v-deep.el-radio__inner { | 
 |  |  |   width: 22px; | 
 |  |  |   height: 22px; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | // ::v-deep.topic-dev.el-radio__label { | 
 |  |  | //   font-size: 24px; | 
 |  |  | // } | 
 |  |  | 
 |  |  |     font-size: 24px; | 
 |  |  |   } | 
 |  |  | } | 
 |  |  |  | 
 |  |  | ::v-deep.el-checkbox-group { | 
 |  |  |   span { | 
 |  |  |     font-size: 24px; | 
 |  |  |   } | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .editor { | 
 |  |  |   line-height: normal !important; | 
 |  |  |   height: 600px; | 
 |  |  |   margin-bottom: 80px; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .ql-snow .ql-tooltip[data-mode="link"]::before { | 
 |  |  |   content: "请输入链接地址:"; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .ql-snow .ql-tooltip.ql-editing a.ql-action::after { | 
 |  |  |   border-right: 0px; | 
 |  |  |   content: "保存"; | 
 |  |  | 
 |  |  | .ql-snow .ql-picker.ql-size .ql-picker-item::before { | 
 |  |  |   content: "14px"; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="small"]::before, | 
 |  |  | .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="small"]::before { | 
 |  |  |   content: "10px"; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="large"]::before, | 
 |  |  | .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="large"]::before { | 
 |  |  |   content: "18px"; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="huge"]::before, | 
 |  |  | .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="huge"]::before { | 
 |  |  |   content: "32px"; | 
 |  |  | 
 |  |  | .ql-snow .ql-picker.ql-header .ql-picker-item::before { | 
 |  |  |   content: "文本"; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before, | 
 |  |  | .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before { | 
 |  |  |   content: "标题1"; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before, | 
 |  |  | .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before { | 
 |  |  |   content: "标题2"; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before, | 
 |  |  | .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before { | 
 |  |  |   content: "标题3"; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before, | 
 |  |  | .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before { | 
 |  |  |   content: "标题4"; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before, | 
 |  |  | .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before { | 
 |  |  |   content: "标题5"; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before, | 
 |  |  | .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before { | 
 |  |  |   content: "标题6"; | 
 |  |  | 
 |  |  | .ql-snow .ql-picker.ql-font .ql-picker-item::before { | 
 |  |  |   content: "标准字体"; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .ql-snow .ql-picker.ql-font .ql-picker-label[data-value="serif"]::before, | 
 |  |  | .ql-snow .ql-picker.ql-font .ql-picker-item[data-value="serif"]::before { | 
 |  |  |   content: "衬线字体"; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .ql-snow .ql-picker.ql-font .ql-picker-label[data-value="monospace"]::before, | 
 |  |  | .ql-snow .ql-picker.ql-font .ql-picker-item[data-value="monospace"]::before { | 
 |  |  |   content: "等宽字体"; | 
 
 |  |  | 
 |  |  |             <el-form-item label="cron表达式:">{{ form.cronExpression }}</el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |           <el-col :span="12"> | 
 |  |  |             <el-form-item label="下次执行时间:">{{ parseTime(form.nextValidTime) }}</el-form-item> | 
 |  |  |             <el-form-item label="下次执行时间:">{{ formatTime(form.nextValidTime) }}</el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |           <el-col :span="24"> | 
 |  |  |             <el-form-item label="调用目标方法:">{{ form.invokeTarget }}</el-form-item> | 
 
 |  |  | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column label="执行时间" align="center" prop="createTime" width="180"> | 
 |  |  |         <template slot-scope="scope"> | 
 |  |  |           <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |           <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | 
 
 |  |  | 
 |  |  |       <el-table-column label="操作信息" align="center" prop="msg" /> | 
 |  |  |       <el-table-column label="登录日期" align="center" prop="loginTime" sortable="custom" :sort-orders="['descending', 'ascending']" width="180"> | 
 |  |  |         <template slot-scope="scope"> | 
 |  |  |           <span>{{ parseTime(scope.row.loginTime) }}</span> | 
 |  |  |           <span>{{ formatTime(scope.row.loginTime) }}</span> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |     </el-table> | 
 
 |  |  | 
 |  |  |       <el-table-column label="操作系统" align="center" prop="os" /> | 
 |  |  |       <el-table-column label="登录时间" align="center" prop="loginTime" width="180"> | 
 |  |  |         <template slot-scope="scope"> | 
 |  |  |           <span>{{ parseTime(scope.row.loginTime) }}</span> | 
 |  |  |           <span>{{ formatTime(scope.row.loginTime) }}</span> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | 
 
 |  |  | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column label="操作日期" align="center" prop="operTime" sortable="custom" :sort-orders="['descending', 'ascending']" width="180"> | 
 |  |  |         <template slot-scope="scope"> | 
 |  |  |           <span>{{ parseTime(scope.row.operTime) }}</span> | 
 |  |  |           <span>{{ formatTime(scope.row.operTime) }}</span> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | 
 |  |  | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |           <el-col :span="12"> | 
 |  |  |             <el-form-item label="操作时间:">{{ parseTime(form.operTime) }}</el-form-item> | 
 |  |  |             <el-form-item label="操作时间:">{{ formatTime(form.operTime) }}</el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |           <el-col :span="24"> | 
 |  |  |             <el-form-item label="异常信息:" v-if="form.status === 1">{{ form.errorMsg }}</el-form-item> | 
 
 |  |  | 
 |  |  |       <div class="preview-left"> | 
 |  |  |         <div class="toptitle"> | 
 |  |  |           <div class="title">{{ taskname ? taskname : "问卷" }}</div> | 
 |  |  |           <div style="font-size: 22px; margin-bottom: 20px; line-height: 1.5;"> | 
 |  |  |             {{ kcb }} | 
 |  |  |           <div style="font-size: 22px; margin-bottom: 20px; line-height: 1.5"> | 
 |  |  |             {{ | 
 |  |  |               kcb | 
 |  |  |                 ? kcb | 
 |  |  |                 : "亲爱的患者-家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访问卷。" | 
 |  |  |             }} | 
 |  |  |             <!-- 亲爱的患者/家属您好,为了更好的了解您出院后的康复情况,给您适当及时的健康指导,请您抽一点宝贵时间,完成这份出院随访问卷调查。 --> | 
 |  |  |           </div> | 
 |  |  |         </div> | 
 |  |  |         <el-divider></el-divider> | 
 |  |  | 
 |  |  |         > | 
 |  |  |           <div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 1"> | 
 |  |  |             <div class="dev-text"> | 
 |  |  |               {{ index + 1 }}、<span>{{ item.scriptContent }} <span style="color: #3BA2F7;">[单选]</span></span> | 
 |  |  |               {{ index + 1 }}、<span style="line-height: 1.5" | 
 |  |  |                 >{{ item.scriptContent }} | 
 |  |  |                 <span style="color: #3ba2f7">[单选]</span></span | 
 |  |  |               > | 
 |  |  |             </div> | 
 |  |  |             <div class="dev-xx"> | 
 |  |  |               <el-radio-group | 
 |  |  |                 class="radio-group" | 
 |  |  |                 class="custom-radio" | 
 |  |  |                 v-model="item.scriptResult" | 
 |  |  |                 @change="handleOptionChange($event, index, item)" | 
 |  |  |               > | 
 |  |  |                 <el-radio | 
 |  |  |                   :class="{ | 
 |  |  |                     'radio-option': true, | 
 |  |  |                     'radio-option-first': index === 0, | 
 |  |  |                   }" | 
 |  |  |                   border | 
 |  |  |                   v-for="(items, index) in item.svyLibTemplateTargetoptions" | 
 |  |  |                   :class="items.isabnormal ? 'red-star' : ''" | 
 |  |  |                   :key="index" | 
 |  |  |                   :label="items.optioncontent" | 
 |  |  |                   >{{ items.optioncontent }}</el-radio | 
 |  |  | 
 |  |  |           <!-- 多选 --> | 
 |  |  |           <div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 2"> | 
 |  |  |             <div class="dev-text"> | 
 |  |  |               {{ index + 1 }}、<span>{{ item.scriptContent }} <span style="color: #3BA2F7;">[多选]</span></span> | 
 |  |  |               {{ index + 1 }}、<span style="line-height: 1.5" | 
 |  |  |                 >{{ item.scriptContent }} | 
 |  |  |                 <span style="color: #3ba2f7">[多选]</span></span | 
 |  |  |               > | 
 |  |  |             </div> | 
 |  |  |             <div class="dev-xx"> | 
 |  |  |               <el-checkbox-group | 
 |  |  |                 class="radio-group" | 
 |  |  |                 class="custom-radio" | 
 |  |  |                 v-model="item.scriptResult" | 
 |  |  |                 @change="updateScore($event, index, item)" | 
 |  |  |               > | 
 |  |  |                 <el-checkbox | 
 |  |  |                   :class="{ | 
 |  |  |                     'radio-option': true, | 
 |  |  |                     'radio-option-first': index === 0, | 
 |  |  |                   }" | 
 |  |  |                   border | 
 |  |  |                   @change="$forceUpdate()" | 
 |  |  |                   v-for="(items, indexs) in item.svyLibTemplateTargetoptions" | 
 |  |  |                   :class="items.isabnormal ? 'red-star' : ''" | 
 |  |  |                   :key="indexs" | 
 |  |  |                   :label="items.optioncontent" | 
 |  |  |                 > | 
 |  |  | 
 |  |  |           <!-- 填空 --> | 
 |  |  |           <div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 4"> | 
 |  |  |             <div class="dev-text"> | 
 |  |  |               {{ index + 1 }}、<span>{{ item.scriptContent }}<span style="color: #3BA2F7;">[问答]</span></span> | 
 |  |  |               {{ index + 1 }}、<span style="line-height: 1.5" | 
 |  |  |                 >{{ item.scriptContent | 
 |  |  |                 }}<span style="color: #3ba2f7">[问答]</span></span | 
 |  |  |               > | 
 |  |  |             </div> | 
 |  |  |             <div class="dev-xx"> | 
 |  |  |               <el-input | 
 |  |  |                 type="textarea" | 
 |  |  |                 :rows="2" | 
 |  |  |                 :rows="3" | 
 |  |  |                 placeholder="请输入答案" | 
 |  |  |                 v-model="item.scriptResult" | 
 |  |  |                 clearable | 
 |  |  | 
 |  |  |           </div> | 
 |  |  |         </div> | 
 |  |  |         <div class="bottom-fixed"> | 
 |  |  |           <el-button type="primary" style="width: 100%;" @click="cache(true)">提交问卷</el-button> | 
 |  |  |           <el-button | 
 |  |  |             type="primary" | 
 |  |  |             style="width: 80%; font-size: 20px" | 
 |  |  |             @click="cache(true)" | 
 |  |  |             >提交问卷</el-button | 
 |  |  |           > | 
 |  |  |         </div> | 
 |  |  |       </div> | 
 |  |  |     </div> | 
 |  |  |     <div class="CONTENT" v-else> | 
 |  |  |       <div class="preview-left" style="margin-top: 100px"> | 
 |  |  |       <div class="preview-lefts"> | 
 |  |  |         <div | 
 |  |  |           style=" | 
 |  |  |             text-align: center; | 
 |  |  |             padding-top: 50px; | 
 |  |  |             font-size: 24px; | 
 |  |  |             color: #175997; | 
 |  |  |             font-weight: 600; | 
 |  |  | 
 |  |  |         > | 
 |  |  |           感谢您的配合! | 
 |  |  |         </div> | 
 |  |  |         <div style="font-size: 20px">{{ revisitAfter }}</div> | 
 |  |  |         <div style="font-size: 20px"> | 
 |  |  |           {{ | 
 |  |  |             jsy | 
 |  |  |               ? jsy | 
 |  |  |               : "生活上要劳逸结合,注意休息和营养,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!" | 
 |  |  |           }} | 
 |  |  |         </div> | 
 |  |  |       </div> | 
 |  |  |     </div> | 
 |  |  |     <!-- <el-dialog | 
 |  |  | 
 |  |  |       width="50%" | 
 |  |  |     > | 
 |  |  |       <div> | 
 |  |  |         <el-alert :title="revisitAfter" type="success"> </el-alert> | 
 |  |  |         <el-alert :title="jsy" type="success"> </el-alert> | 
 |  |  |       </div> | 
 |  |  |     </el-dialog> --> | 
 |  |  |   </div> | 
 |  |  | 
 |  |  |     return { | 
 |  |  |       taskid: 355, | 
 |  |  |       patid: 265823, | 
 |  |  |       kcb:'', | 
 |  |  |       kcb: "", | 
 |  |  |       questionList: [ | 
 |  |  |         // { | 
 |  |  |         //   scriptType: 1, | 
 |  |  |         //   scriptContent: "您的年龄范围是?", | 
 |  |  |         //   scriptResult: null, | 
 |  |  |         //   svyLibTemplateTargetoptions: [ | 
 |  |  |         //     { optioncontent: "18-25", value: "18-25" }, | 
 |  |  |         //     { optioncontent: "26-35", value: "26-35" }, | 
 |  |  |         //     { optioncontent: "36-45", value: "36-45" }, | 
 |  |  |         //     { optioncontent: "46-55", value: "46-55" }, | 
 |  |  |         //     { optioncontent: "56+", value: "56+" }, | 
 |  |  |         //   ], | 
 |  |  |         //   required: true, | 
 |  |  |         // }, | 
 |  |  |         // { | 
 |  |  |         //   scriptType: 1, | 
 |  |  |         //   scriptContent: "您的职业是什么?", | 
 |  |  |         //   scriptResult: null, | 
 |  |  |         //   svyLibTemplateTargetoptions: [ | 
 |  |  |         //     { optioncontent: "学生", value: "student" }, | 
 |  |  |         //     { optioncontent: "教师", value: "teacher" }, | 
 |  |  |         //     { optioncontent: "工程师", value: "engineer" }, | 
 |  |  |         //     { optioncontent: "医生", value: "doctor" }, | 
 |  |  |         //     { optioncontent: "其他", value: "other" }, | 
 |  |  |         //   ], | 
 |  |  |         //   required: false, | 
 |  |  |         // }, | 
 |  |  |         // { | 
 |  |  |         //   scriptType: 2, | 
 |  |  |         //   scriptContent: "您感兴趣的活动有哪些?", | 
 |  |  |         //   scriptResult: [], | 
 |  |  |         //   svyLibTemplateTargetoptions: [ | 
 |  |  |         //     { optioncontent: "旅游", value: "travel" }, | 
 |  |  |         //     { optioncontent: "阅读", value: "reading" }, | 
 |  |  |         //     { optioncontent: "运动", value: "sports" }, | 
 |  |  |         //     { optioncontent: "音乐", value: "music" }, | 
 |  |  |         //     { optioncontent: "电影", value: "movies" }, | 
 |  |  |         //   ], | 
 |  |  |         //   required: false, | 
 |  |  |         // }, | 
 |  |  |         // { | 
 |  |  |         //   scriptType: 1, | 
 |  |  |         //   scriptContent: "您的职业是什么?", | 
 |  |  |         //   scriptResult: null, | 
 |  |  |         //   svyLibTemplateTargetoptions: [ | 
 |  |  |         //     { optioncontent: "学生", value: "student" }, | 
 |  |  |         //     { optioncontent: "教师", value: "teacher" }, | 
 |  |  |         //     { optioncontent: "工程师", value: "engineer" }, | 
 |  |  |         //     { optioncontent: "医生", value: "doctor" }, | 
 |  |  |         //     { optioncontent: "其他", value: "other" }, | 
 |  |  |         //   ], | 
 |  |  |         //   required: false, | 
 |  |  |         // }, | 
 |  |  |         // { | 
 |  |  |         //   scriptType: 1, | 
 |  |  |         //   scriptContent: "您的职业是什么?", | 
 |  |  |         //   scriptResult: null, | 
 |  |  |         //   svyLibTemplateTargetoptions: [ | 
 |  |  |         //     { optioncontent: "学生", value: "student" }, | 
 |  |  |         //     { optioncontent: "教师", value: "teacher" }, | 
 |  |  |         //     { optioncontent: "工程师", value: "engineer" }, | 
 |  |  |         //     { optioncontent: "医生", value: "doctor" }, | 
 |  |  |         //     { optioncontent: "其他", value: "other" }, | 
 |  |  |         //   ], | 
 |  |  |         //   required: false, | 
 |  |  |         // }, | 
 |  |  |         // { | 
 |  |  |         //   scriptType: 1, | 
 |  |  |         //   scriptContent: "您的职业是什么?", | 
 |  |  |         //   scriptResult: null, | 
 |  |  |         //   svyLibTemplateTargetoptions: [ | 
 |  |  |         //     { optioncontent: "学生", value: "student" }, | 
 |  |  |         //     { optioncontent: "教师", value: "teacher" }, | 
 |  |  |         //     { optioncontent: "工程师", value: "engineer" }, | 
 |  |  |         //     { optioncontent: "医生", value: "doctor" }, | 
 |  |  |         //     { optioncontent: "其他", value: "other" }, | 
 |  |  |         //   ], | 
 |  |  |         //   required: false, | 
 |  |  |         // }, | 
 |  |  |         // { | 
 |  |  |         //   scriptType: 4, | 
 |  |  |         //   scriptContent: "您的姓名是什么?", | 
 |  |  |         //   scriptResult: "name", | 
 |  |  |         //   required: true, | 
 |  |  |         //   scriptResult: null, | 
 |  |  |         // }, | 
 |  |  |         { | 
 |  |  |           scriptType: 1, | 
 |  |  |           scriptContent: "您的年龄范围是?", | 
 |  |  |           scriptResult: null, | 
 |  |  |           svyLibTemplateTargetoptions: [ | 
 |  |  |             { optioncontent: "18-25", value: "18-25", isabnormal: true }, | 
 |  |  |             { optioncontent: "26-35", value: "26-35" }, | 
 |  |  |             { optioncontent: "36-45", value: "36-45" }, | 
 |  |  |             { optioncontent: "46-55", value: "46-55" }, | 
 |  |  |             { optioncontent: "56+", value: "56+" }, | 
 |  |  |           ], | 
 |  |  |           required: true, | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           scriptType: 1, | 
 |  |  |           scriptContent: "您的职业是什么?", | 
 |  |  |           scriptResult: null, | 
 |  |  |           svyLibTemplateTargetoptions: [ | 
 |  |  |             { optioncontent: "学生", value: "student" }, | 
 |  |  |             { optioncontent: "教师", value: "teacher" }, | 
 |  |  |             { optioncontent: "工程师", value: "engineer" }, | 
 |  |  |             { optioncontent: "医生", value: "doctor" }, | 
 |  |  |             { optioncontent: "其他", value: "other" }, | 
 |  |  |           ], | 
 |  |  |           required: false, | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           scriptType: 2, | 
 |  |  |           scriptContent: "您感兴趣的活动有哪些?", | 
 |  |  |           scriptResult: [], | 
 |  |  |           svyLibTemplateTargetoptions: [ | 
 |  |  |             { optioncontent: "旅游", value: "travel", isabnormal: true }, | 
 |  |  |             { optioncontent: "阅读", value: "reading", isabnormal: true }, | 
 |  |  |             { optioncontent: "运动", value: "sports", isabnormal: true }, | 
 |  |  |             { optioncontent: "音乐", value: "music" }, | 
 |  |  |             { optioncontent: "电影", value: "movies" }, | 
 |  |  |           ], | 
 |  |  |           required: false, | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           scriptType: 1, | 
 |  |  |           scriptContent: "您的职业是什么?", | 
 |  |  |           scriptResult: null, | 
 |  |  |           svyLibTemplateTargetoptions: [ | 
 |  |  |             { optioncontent: "学生", value: "student" }, | 
 |  |  |             { optioncontent: "教师", value: "teacher" }, | 
 |  |  |             { optioncontent: "工程师", value: "engineer" }, | 
 |  |  |             { optioncontent: "医生", value: "doctor" }, | 
 |  |  |             { optioncontent: "其他", value: "other" }, | 
 |  |  |           ], | 
 |  |  |           required: false, | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           scriptType: 1, | 
 |  |  |           scriptContent: "您的职业是什么?", | 
 |  |  |           scriptResult: null, | 
 |  |  |           svyLibTemplateTargetoptions: [ | 
 |  |  |             { optioncontent: "学生", value: "student" }, | 
 |  |  |             { optioncontent: "教师", value: "teacher" }, | 
 |  |  |             { optioncontent: "工程师", value: "engineer", isabnormal: true }, | 
 |  |  |             { optioncontent: "医生", value: "doctor" }, | 
 |  |  |             { optioncontent: "其他", value: "other" }, | 
 |  |  |           ], | 
 |  |  |           required: false, | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           scriptType: 1, | 
 |  |  |           scriptContent: "您的职业是什么?", | 
 |  |  |           scriptResult: null, | 
 |  |  |           svyLibTemplateTargetoptions: [ | 
 |  |  |             { optioncontent: "学生", value: "student" }, | 
 |  |  |             { optioncontent: "教师", value: "teacher" }, | 
 |  |  |             { optioncontent: "工程师", value: "engineer" }, | 
 |  |  |             { optioncontent: "医生", value: "doctor" }, | 
 |  |  |             { optioncontent: "其他", value: "other" }, | 
 |  |  |           ], | 
 |  |  |           required: false, | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           scriptType: 4, | 
 |  |  |           scriptContent: "您的姓名是什么?", | 
 |  |  |           scriptResult: "name", | 
 |  |  |           required: true, | 
 |  |  |           scriptResult: null, | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |       revisitAfter: null, | 
 |  |  |       jsy: null, | 
 |  |  |       dialogVisible: false, | 
 |  |  |       Endornot: true, | 
 |  |  |       accomplish: false, | 
 |  |  | 
 |  |  |         (res) => { | 
 |  |  |           if (res.code == 200) { | 
 |  |  |             this.questionList = res.data.script; | 
 |  |  |             this.revisitAfter = res.data.revisitAfter; | 
 |  |  |             this.jsy = res.data.jsy; | 
 |  |  |             this.kcb = res.data.kcb; | 
 |  |  |             // 处理题目收集结果格式 | 
 |  |  |             this.questionList.forEach((item) => { | 
 |  |  | 
 |  |  |       form.serviceSubtaskDetailList = arr; | 
 |  |  |       Submitaquestionnaire(form).then((res) => { | 
 |  |  |         if (res.code == 200) { | 
 |  |  |           if (this.revisitAfter) { | 
 |  |  |           if (this.jsy) { | 
 |  |  |             this.dialogVisible = true; | 
 |  |  |           } | 
 |  |  |           this.accomplish = true; | 
 |  |  | 
 |  |  |   padding: 0; | 
 |  |  |   .CONTENT { | 
 |  |  |     .title { | 
 |  |  |       color: #3769F3; | 
 |  |  |       color: #3769f3; | 
 |  |  |       font-size: 22px; | 
 |  |  |       font-weight: bold; | 
 |  |  |       margin-bottom: 20px; | 
 |  |  | 
 |  |  |   border-radius: 5px; | 
 |  |  |   //   margin: 20px; | 
 |  |  |   padding: 10px; | 
 |  |  |   height: 100%; | 
 |  |  |   // background: #ffff; | 
 |  |  |   border: 1px solid #dcdfe6; | 
 |  |  |   -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), | 
 |  |  | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | .radio-group { | 
 |  |  | .preview-lefts { | 
 |  |  |   margin: 10px; | 
 |  |  |   background-color: #fff; | 
 |  |  |   border-radius: 5px; | 
 |  |  |   //   margin: 20px; | 
 |  |  |   padding: 10px; | 
 |  |  |   height: 95vh; // background: #ffff; | 
 |  |  |   border: 1px solid #dcdfe6; | 
 |  |  |   -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), | 
 |  |  |     0 0 6px 0 rgba(0, 0, 0, 0.04); | 
 |  |  |   .topic-dev { | 
 |  |  |     margin-bottom: 25px; | 
 |  |  |     font-size: 20px !important; | 
 |  |  |     .dev-text { | 
 |  |  |       margin-bottom: 10px; | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | .red-star { | 
 |  |  |   position: relative; | 
 |  |  |   padding-right: 15px; | 
 |  |  | } | 
 |  |  | .red-star { | 
 |  |  |   ::v-deep.el-radio__label { | 
 |  |  |     position: relative; | 
 |  |  |     padding-right: 10px; /* 根据需要调整 */ | 
 |  |  |   } | 
 |  |  |   ::v-deep.el-radio__label::after { | 
 |  |  |     content: "*"; | 
 |  |  |     color: red; | 
 |  |  |     position: absolute; | 
 |  |  |     right: -5px; /* 根据需要调整 */ | 
 |  |  |     top: 0; | 
 |  |  |   } | 
 |  |  |   ::v-deep.el-checkbox__label { | 
 |  |  |     position: relative; | 
 |  |  |     padding-right: 10px; /* 根据需要调整 */ | 
 |  |  |   } | 
 |  |  |   ::v-deep.el-checkbox__label::after { | 
 |  |  |     content: "*"; | 
 |  |  |     color: red; | 
 |  |  |     position: absolute; | 
 |  |  |     right: -5px; /* 根据需要调整 */ | 
 |  |  |     top: 0; | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | ::v-deep.el-checkbox-group { | 
 |  |  |   font-size: 0; | 
 |  |  |   display: flex; | 
 |  |  |   flex-wrap: wrap; | 
 |  |  |   gap: 10px; /* 设置选项之间的间隔 */ | 
 |  |  |   align-items: start; /* 确保选项上下对齐 */ | 
 |  |  |   padding: 10px 0; /* 为整个组设置上下间隔 */ | 
 |  |  |   flex-direction: column; | 
 |  |  |   margin: 5px 0; | 
 |  |  | } | 
 |  |  | ::v-deep.el-checkbox.is-bordered + .el-checkbox.is-bordered { | 
 |  |  |   margin-left: 0; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | ::v-deep.el-radio-group { | 
 |  |  |   display: flex; | 
 |  |  |   flex-direction: column; | 
 |  |  |   margin: 5px 0; | 
 |  |  | } | 
 |  |  | ::v-deep.el-radio.is-bordered + .el-radio.is-bordered { | 
 |  |  |   /* margin-left: 10px; */ | 
 |  |  |   margin-left: 0; | 
 |  |  | } | 
 |  |  | ::v-deep.custom-radio .el-radio { | 
 |  |  |   margin: 2px 0; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | .radio-option { | 
 |  |  | 
 |  |  |   bottom: 0; | 
 |  |  |   left: 0; | 
 |  |  |   width: 100%; | 
 |  |  |   text-align: center; | 
 |  |  |   padding: 10px 0; /* 根据需要调整内边距 */ | 
 |  |  |   background: #fff; /* 根据需要调整背景颜色 */ | 
 |  |  |   box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.1); /* 可选的阴影效果 */ | 
 |  |  | 
 |  |  |   font-size: 20px; | 
 |  |  | } | 
 |  |  | ::v-deep.el-radio--medium.is-bordered { | 
 |  |  |     padding: 5px 20px 0px 10px; | 
 |  |  |     border-radius: 4px; | 
 |  |  |     height: 36px; | 
 |  |  |   padding: 5px 20px 0px 10px; | 
 |  |  |   border-radius: 4px; | 
 |  |  |   height: 36px; | 
 |  |  | } | 
 |  |  | ::v-deep.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label { | 
 |  |  |     line-height: 17px; | 
 |  |  |     font-size: 20px; | 
 |  |  |   line-height: 17px; | 
 |  |  |   font-size: 20px; | 
 |  |  | } | 
 |  |  | ::v-deep.el-checkbox { | 
 |  |  |   margin-right: 0px; | 
 |  |  | } | 
 |  |  | </style> | 
 
 |  |  | 
 |  |  |           width="160" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  | 
 |  |  |           width="160" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  | 
 |  |  |           width="160" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |  | 
 
 |  |  | 
 |  |  |             width="160" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <span>{{ parseTime(scope.row.archivetime) }}</span> | 
 |  |  |               <span>{{ formatTime(scope.row.archivetime) }}</span> | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column | 
 
 |  |  | 
 |  |  |       <el-table-column label="权限字符" align="center" prop="roleKey" /> | 
 |  |  |       <el-table-column label="创建时间" align="center" prop="createTime" width="180"> | 
 |  |  |         <template slot-scope="scope"> | 
 |  |  |           <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |           <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |     </el-table> | 
 |  |  |      | 
 |  |  |  | 
 |  |  |     <pagination v-show="total>0" :total="total" :page.sync="pageNum" :limit.sync="pageSize" /> | 
 |  |  |  | 
 |  |  |     <el-form label-width="100px"> | 
 |  |  | 
 |  |  |     }, | 
 |  |  |   }, | 
 |  |  | }; | 
 |  |  | </script> | 
 |  |  | </script> | 
 
 |  |  | 
 |  |  |             width="160" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <span>{{ parseTime(scope.row.endtime) }}</span> | 
 |  |  |               <span>{{ formatTime(scope.row.endtime) }}</span> | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |  | 
 
 |  |  | 
 |  |  |                 prop="createTime" | 
 |  |  |                 width="160" | 
 |  |  |               > | 
 |  |  |               <template slot-scope="scope"> | 
 |  |  |                   <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |                 </template> | 
 |  |  |               </el-table-column> | 
 |  |  |               <el-table-column | 
 |  |  |                 label="更新日期" | 
 |  |  | 
 |  |  |                 width="160" | 
 |  |  |               > | 
 |  |  |                 <template slot-scope="scope"> | 
 |  |  |                   <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |                   <span>{{ formatTime(scope.row.archivetime) }}</span> | 
 |  |  |                 </template> | 
 |  |  |               </el-table-column> | 
 |  |  |               <el-table-column | 
 |  |  | 
 |  |  |             width="160" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |               <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column | 
 
 |  |  | 
 |  |  |             width="160" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |               <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |  | 
 
 |  |  | 
 |  |  |             width="160" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |               <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column | 
 |  |  | 
 |  |  |             width="160" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |               <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column | 
 
 |  |  | 
 |  |  |             width="160" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |               <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |  | 
 
 |  |  | 
 |  |  |           width="160" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  | 
 |  |  |           width="160" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  | 
 |  |  |           width="160" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |  | 
 
 |  |  | 
 |  |  |                     </div> | 
 |  |  |                   </div> | 
 |  |  |                 </el-form-item> | 
 |  |  |                 <el-row> | 
 |  |  |                   <el-col :span="12" | 
 |  |  |                     ><el-form-item label="开场白" prop="kcb"> | 
 |  |  |                       <el-input | 
 |  |  |                         type="textarea" | 
 |  |  |                           :rows="3" | 
 |  |  |                         v-model="form.kcb" | 
 |  |  |                         placeholder="请输入开场白" | 
 |  |  |                       /> </el-form-item | 
 |  |  |                   ></el-col> | 
 |  |  |                   <el-col :span="12" | 
 |  |  |                     ><el-form-item label="结束语" prop="jsy"> | 
 |  |  |                       <el-input | 
 |  |  |                         type="textarea" | 
 |  |  |                         :rows="3" | 
 |  |  |                         v-model="form.jsy" | 
 |  |  |                         placeholder="请输入结束语" | 
 |  |  |                       /> </el-form-item | 
 |  |  |                   ></el-col> | 
 |  |  |                 </el-row> | 
 |  |  |               </el-form> | 
 |  |  |             </div> | 
 |  |  |           </div> | 
 |  |  | 
 |  |  |                         </el-option> | 
 |  |  |                       </el-select> | 
 |  |  |                     </el-col> | 
 |  |  |  | 
 |  |  |                     <el-col :span="1.5"> | 
 |  |  |                       <el-button | 
 |  |  |                         type="primary" | 
 |  |  | 
 |  |  |                         icon="el-icon-plus" | 
 |  |  |                         size="medium" | 
 |  |  |                         :disabled="!patientqueryParams.allhosp" | 
 |  |  |                         @click="handleAddpatient" | 
 |  |  |                         @click="handleQuery" | 
 |  |  |                         >新增</el-button | 
 |  |  |                       > | 
 |  |  |                     </el-col> | 
 |  |  | 
 |  |  |                   @keyup.enter.native="handleQuery" | 
 |  |  |                 ></el-input> | 
 |  |  |               </el-form-item> | 
 |  |  |               <el-select | 
 |  |  |                 v-model="patientqueryParams.topica" | 
 |  |  |                 placeholder="请选择患者来源" | 
 |  |  |               > | 
 |  |  |                 <el-option | 
 |  |  |                   v-for="item in source" | 
 |  |  |                   :key="item.value" | 
 |  |  |                   :label="item.label" | 
 |  |  |                   :value="item.value" | 
 |  |  |                 > | 
 |  |  |                 </el-option> | 
 |  |  |               </el-select> | 
 |  |  |  | 
 |  |  |               <el-form-item> | 
 |  |  |                 <el-button | 
 |  |  | 
 |  |  |       patientqueryParams: { | 
 |  |  |         pageNum: 1, // | 
 |  |  |         pageSize: 10, | 
 |  |  |         topica:0,//0全部1科室2病区 | 
 |  |  |       }, | 
 |  |  |       topicoptions: [{ children: [{ children: [] }] }], | 
 |  |  |       showSearch: true, // | 
 |  |  | 
 |  |  |         templatename: "", | 
 |  |  |         templateid: null, | 
 |  |  |         libtemplateid: null, | 
 |  |  |         kcb:'亲爱的患者-家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访问卷。', | 
 |  |  |         jsy:'生活上要劳逸结合,注意休息和营养,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!', | 
 |  |  |       }, | 
 |  |  |       taskoptions: [ | 
 |  |  |         { | 
 |  |  | 
 |  |  |           label: "体检病人", | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |       source: [ | 
 |  |  |         { | 
 |  |  |           value: 0, | 
 |  |  |           label: "所有患者", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 1, | 
 |  |  |           label: "科室患者", | 
 |  |  |         }, | 
 |  |  |         { | 
 |  |  |           value: 2, | 
 |  |  |           label: "病区患者", | 
 |  |  |         }, | 
 |  |  |       ], | 
 |  |  |  | 
 |  |  |       tasktypes: [ | 
 |  |  |         { | 
 |  |  |           value: 1, | 
 |  |  | 
 |  |  |         this.Tasktemplate = row; | 
 |  |  |         this.questionList = row.svyTemplateLibScripts; | 
 |  |  |         getQtemplateobj({ svyid: row.svyid }).then((res) => { | 
 |  |  |           if (res.code==200) { | 
 |  |  |           if (res.code == 200) { | 
 |  |  |             this.questionList = res.rows[0].svyTemplateLibScripts; | 
 |  |  |             this.previewtf = true; | 
 |  |  |           } | 
 |  |  | 
 |  |  |     handleUpdate() {}, | 
 |  |  |     handleDelete() {}, | 
 |  |  |     handleExport() {}, | 
 |  |  |  | 
 |  |  |     // 选择患者表数据 | 
 |  |  |     handleSelectionChange(selection) { | 
 |  |  |       console.log("多选患者"); | 
 |  |  | 
 |  |  |     }, | 
 |  |  |     getList() {}, | 
 |  |  |     handleQuery() { | 
 |  |  |       if (this.patientqueryParams.topica == 0) { | 
 |  |  |         this.patientqueryParams.leavehospitaldistrictcodes = | 
 |  |  |           store.getters.leavehospitaldistrictcodes; | 
 |  |  |         this.patientqueryParams.leaveldeptcodes = store.getters.leaveldeptcodes; | 
 |  |  |       } else if (topica == 1) { | 
 |  |  |         this.patientqueryParams.leavehospitaldistrictcodes = null; | 
 |  |  |         this.patientqueryParams.leaveldeptcodes = store.getters.leaveldeptcodes; | 
 |  |  |       } else if (topica == 2) { | 
 |  |  |         this.patientqueryParams.leavehospitaldistrictcodes = | 
 |  |  |           store.getters.leavehospitaldistrictcodes; | 
 |  |  |         this.patientqueryParams.leaveldeptcodes = null; | 
 |  |  |       } | 
 |  |  |       this.handleAddpatient(); | 
 |  |  |     }, | 
 |  |  |     resetQuery() {}, | 
 |  |  | 
 |  |  |         templatename: "", | 
 |  |  |         templateid: null, | 
 |  |  |         libtemplateid: null, | 
 |  |  |         kcb:'亲爱的患者-家属,您好!我们是浙中医大二院的医护人员,为了更好地了解您的康复情况,请您抽一点宝贵时间,完成这份随访问卷。', | 
 |  |  |         jsy:'生活上要劳逸结合,注意休息和营养,适当锻炼,戒烟限酒,保持心情舒畅,定期复诊。那本次回访就到这里,祝您身体健康!', | 
 |  |  |       }; | 
 |  |  |       this.questionList = []; | 
 |  |  |       if (this.id) { | 
 
 |  |  | 
 |  |  |           width="160" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  | 
 |  |  |           width="160" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  | 
 |  |  |           width="160" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |  | 
 
 |  |  | 
 |  |  |           width="160" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  | 
 |  |  |           width="160" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  | 
 |  |  |           width="160" | 
 |  |  |         > | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |  | 
 
 |  |  | 
 |  |  |             width="160" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |               <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column | 
 
 |  |  | 
 |  |  |                 width="160" | 
 |  |  |               > | 
 |  |  |                 <template slot-scope="scope"> | 
 |  |  |                   <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |                   <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |                 </template> </el-table-column | 
 |  |  |               ><el-table-column | 
 |  |  |                 label="发送时间" | 
 |  |  | 
 |  |  |                 width="160" | 
 |  |  |               > | 
 |  |  |                 <template slot-scope="scope"> | 
 |  |  |                   <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |                   <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |                 </template> | 
 |  |  |               </el-table-column> | 
 |  |  |               <el-table-column | 
 
 |  |  | 
 |  |  |             width="160" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |               <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column | 
 
 |  |  | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |     </el-table> | 
 |  |  |      | 
 |  |  |  | 
 |  |  |     <pagination | 
 |  |  |       v-show="total>0" | 
 |  |  |       :total="total" | 
 |  |  | 
 |  |  |       this.loading = true; | 
 |  |  |       listCategory(this.queryParams).then(response => { | 
 |  |  |         this.categoryList = response.rows; | 
 |  |  |          | 
 |  |  |  | 
 |  |  |         console.log(this.categoryList); | 
 |  |  |         this.total = response.total; | 
 |  |  |         this.loading = false; | 
 
 |  |  | 
 |  |  |       <el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" /> | 
 |  |  |       <el-table-column label="创建时间" align="center" prop="createTime" width="180"> | 
 |  |  |         <template slot-scope="scope"> | 
 |  |  |           <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |           <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | 
 
 |  |  | 
 |  |  |         width="200" | 
 |  |  |       > | 
 |  |  |         <template slot-scope="scope"> | 
 |  |  |           <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |           <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column | 
 
 |  |  | 
 |  |  |       <el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" /> | 
 |  |  |       <el-table-column label="创建时间" align="center" prop="createTime" width="180"> | 
 |  |  |         <template slot-scope="scope"> | 
 |  |  |           <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |           <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | 
 |  |  | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | }; | 
 |  |  | </script> | 
 |  |  | </script> | 
 
 |  |  | 
 |  |  |       <el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" /> | 
 |  |  |       <el-table-column label="创建时间" align="center" prop="createTime" width="180"> | 
 |  |  |         <template slot-scope="scope"> | 
 |  |  |           <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |           <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | 
 |  |  | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | }; | 
 |  |  | </script> | 
 |  |  | </script> | 
 
 |  |  | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column label="创建时间" align="center" prop="createTime"> | 
 |  |  |         <template slot-scope="scope"> | 
 |  |  |           <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |           <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | 
 |  |  |         <template slot-scope="scope"> | 
 |  |  |           <el-button  | 
 |  |  |           <el-button | 
 |  |  |             size="mini" | 
 |  |  |             type="text" | 
 |  |  |             icon="el-icon-edit" | 
 
 |  |  | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column label="创建时间" align="center" prop="createTime" width="180"> | 
 |  |  |         <template slot-scope="scope"> | 
 |  |  |           <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |           <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | 
 
 |  |  | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column label="创建时间" align="center" prop="createTime" width="180"> | 
 |  |  |         <template slot-scope="scope"> | 
 |  |  |           <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |           <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | 
 |  |  | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | }; | 
 |  |  | </script> | 
 |  |  | </script> | 
 
 |  |  | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column label="创建时间" align="center" prop="createTime" width="180"> | 
 |  |  |         <template slot-scope="scope"> | 
 |  |  |           <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |           <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |       <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | 
 |  |  | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | }; | 
 |  |  | </script> | 
 |  |  | </script> | 
 
 |  |  | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column label="创建时间" align="center" prop="createTime" width="180"> | 
 |  |  |           <template slot-scope="scope"> | 
 |  |  |             <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |             <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |       </el-table> | 
 
 |  |  | 
 |  |  |       <el-table-column label="权限字符" align="center" prop="roleKey" /> | 
 |  |  |       <el-table-column label="创建时间" align="center" prop="createTime" width="180"> | 
 |  |  |         <template slot-scope="scope"> | 
 |  |  |           <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |           <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |         </template> | 
 |  |  |       </el-table-column> | 
 |  |  |     </el-table> | 
 |  |  |      | 
 |  |  |  | 
 |  |  |     <pagination v-show="total>0" :total="total" :page.sync="pageNum" :limit.sync="pageSize" /> | 
 |  |  |  | 
 |  |  |     <el-form label-width="100px"> | 
 |  |  | 
 |  |  |     }, | 
 |  |  |   }, | 
 |  |  | }; | 
 |  |  | </script> | 
 |  |  | </script> | 
 
 |  |  | 
 |  |  |             width="160" | 
 |  |  |           > | 
 |  |  |             <template slot-scope="scope"> | 
 |  |  |               <span>{{ parseTime(scope.row.createTime) }}</span> | 
 |  |  |               <span>{{ formatTime(scope.row.createTime) }}</span> | 
 |  |  |             </template> | 
 |  |  |           </el-table-column> | 
 |  |  |           <el-table-column | 
 |  |  | 
 |  |  |               /> | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |           <el-col :span="12"> | 
 |  |  |           <!-- <el-col :span="12"> | 
 |  |  |             <el-form-item label="归属部门" prop="deptId"> | 
 |  |  |               <treeselect | 
 |  |  |                 v-model="form.depts" | 
 |  |  | 
 |  |  |                 placeholder="请选择归属部门" | 
 |  |  |               /> | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |           </el-col> --> | 
 |  |  |         </el-row> | 
 |  |  |         <el-form-item label="适用科室" prop="region"> | 
 |  |  |                 <el-cascader | 
 |  |  |                 style="width: 478px" | 
 |  |  |                   v-model="form.leaveldeptcodes" | 
 |  |  |                   :options="deptOptions" | 
 |  |  |                   :props="props" | 
 |  |  |                   :show-all-levels="false" | 
 |  |  |                   clearable | 
 |  |  |                 > | 
 |  |  |                   <template slot-scope="{ node, data }"> | 
 |  |  |                     <span>{{ data.label }}</span> | 
 |  |  |                     <span v-if="!node.isLeaf"> | 
 |  |  |                       ({{ data.children.length }}) | 
 |  |  |                     </span> | 
 |  |  |                   </template> | 
 |  |  |                 </el-cascader> | 
 |  |  |               </el-form-item> | 
 |  |  |               <el-form-item label="适用院区" prop="region"> | 
 |  |  |                 <el-cascader | 
 |  |  |                 style="width: 478px" | 
 |  |  |                   v-model="form.leavehospitaldistrictcodes" | 
 |  |  |                   :options="deptOptions" | 
 |  |  |                   :props="props" | 
 |  |  |                   :show-all-levels="false" | 
 |  |  |                   clearable | 
 |  |  |                 > | 
 |  |  |                   <template slot-scope="{ node, data }"> | 
 |  |  |                     <span>{{ data.label }}</span> | 
 |  |  |                     <span v-if="!node.isLeaf"> | 
 |  |  |                       ({{ data.children.length }}) | 
 |  |  |                     </span> | 
 |  |  |                   </template> | 
 |  |  |                 </el-cascader> | 
 |  |  |               </el-form-item> | 
 |  |  |         <el-row> | 
 |  |  |           <el-col :span="12"> | 
 |  |  |             <el-form-item label="手机号码" prop="phonenumber"> | 
 |  |  | 
 |  |  |         children: "children", | 
 |  |  |         label: "label", | 
 |  |  |       }, | 
 |  |  |       props: { multiple: true, value: "id", label: "label" }, | 
 |  |  |       // 用户导入参数 | 
 |  |  |       upload: { | 
 |  |  |         // 是否显示弹出层(用户导入) | 
 |  |  | 
 |  |  |       const userId = row.userId || this.ids; | 
 |  |  |       getUser(userId).then((response) => { | 
 |  |  |         this.form = response.data; | 
 |  |  |  | 
 |  |  |         this.form.leaveldeptcodes = JSON.parse(this.form.hospInfo); | 
 |  |  |         this.form.leavehospitaldistrictcodes = JSON.parse(this.form.deptInfo); | 
 |  |  |         this.postOptions = response.posts; | 
 |  |  |         this.roleOptions = response.roles; | 
 |  |  |         this.$set(this.form, "postIds", response.postIds); | 
 |  |  | 
 |  |  |     }, | 
 |  |  |     /** 提交按钮 */ | 
 |  |  |     submitForm: function () { | 
 |  |  |       this.form.hospInfo = JSON.stringify(this.form.leaveldeptcodes); | 
 |  |  |       this.form.deptInfo = JSON.stringify(this.form.leavehospitaldistrictcodes); | 
 |  |  |       this.form.leaveldeptcodes = this.form.leaveldeptcodes.map( | 
 |  |  |         (subArr) => subArr[subArr.length - 1] | 
 |  |  |       ); | 
 |  |  |       this.form.leavehospitaldistrictcodes = this.form.leavehospitaldistrictcodes.map( | 
 |  |  |         (subArr) => subArr[subArr.length - 1] | 
 |  |  |       ); | 
 |  |  |  | 
 |  |  |       this.$refs["form"].validate((valid) => { | 
 |  |  |         if (valid) { | 
 |  |  |           if (this.form.userId != undefined) { | 
 
 |  |  | 
 |  |  |       [process.env.VUE_APP_BASE_API]: { | 
 |  |  |         target: `http://192.168.1.10:8095`, | 
 |  |  |         // target:`http://localhost:8095`, | 
 |  |  |         // target: `http://192.168.101.135:8095`, | 
 |  |  |         // target: `http://192.168.101.166:8093`, | 
 |  |  |         changeOrigin: true, | 
 |  |  |         pathRewrite: { |