From c7b33db117fd2893d7d1c93bf5d46e87d33e44d0 Mon Sep 17 00:00:00 2001 From: lkk <364857242@qq.com> Date: 星期一, 16 十二月 2024 16:08:51 +0800 Subject: [PATCH] 初审结果查询 --- src/views/hosp/surveyTemplate/index.vue | 465 ++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 390 insertions(+), 75 deletions(-) diff --git a/src/views/hosp/surveyTemplate/index.vue b/src/views/hosp/surveyTemplate/index.vue index e0712aa..375582e 100644 --- a/src/views/hosp/surveyTemplate/index.vue +++ b/src/views/hosp/surveyTemplate/index.vue @@ -1,68 +1,177 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form + :model="queryParams" + ref="queryForm" + size="small" + :inline="true" + v-show="showSearch" + label-width="68px" + > <el-form-item label="妯℃澘鍚嶇О" prop="tempName"> - <el-input v-model="queryParams.tempName" placeholder="璇疯緭鍏ユā鏉垮悕绉�" clearable @keyup.enter.native="handleQuery" /> + <el-input + v-model="queryParams.tempName" + placeholder="璇疯緭鍏ユā鏉垮悕绉�" + clearable + @keyup.enter.native="handleQuery" + /> </el-form-item> <el-form-item> - <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> - <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + <el-button + type="primary" + icon="el-icon-search" + size="mini" + @click="handleQuery" + >鎼滅储</el-button + > + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" + >閲嶇疆</el-button + > </el-form-item> </el-form> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> - <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd" - v-hasPermi="['hosp:surveyTemplate:add']">鏂板 + <el-button + type="primary" + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['hosp:surveyTemplate:add']" + >鏂板 </el-button> </el-col> <el-col :span="1.5"> - <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" - v-hasPermi="['hosp:surveyTemplate:edit']">淇敼 + <el-button + type="primary" + icon="el-icon-edit" + size="mini" + :disabled="single" + @click="handleUpdate1" + v-hasPermi="['hosp:surveyTemplate:edit']" + >鏍囬淇敼 + </el-button> + </el-col> + <el-col :span="1.5" v-if="details"> + <el-button + type="primary" + icon="el-icon-edit" + size="mini" + :disabled="single" + @click="handleUpdate" + v-hasPermi="['hosp:surveyTemplate:edit']" + >璇︽儏淇敼 </el-button> </el-col> <el-col :span="1.5"> - <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" - v-hasPermi="['hosp:surveyTemplate:remove']">鍒犻櫎 + <el-button + type="primary" + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['hosp:surveyTemplate:remove']" + >鍒犻櫎 </el-button> </el-col> <el-col :span="1.5"> - <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport" - v-hasPermi="['hosp:surveyTemplate:export']">瀵煎嚭 + <el-button + type="primary" + icon="el-icon-download" + size="mini" + @click="handleExport" + v-hasPermi="['hosp:surveyTemplate:export']" + >瀵煎嚭 </el-button> </el-col> - <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + <right-toolbar + :showSearch.sync="showSearch" + @queryTable="getList" + ></right-toolbar> </el-row> - <el-table border v-loading="loading" :data="surveyTemplateList" @selection-change="handleSelectionChange"> + <el-table + border + v-loading="loading" + :data="surveyTemplateList" + @selection-change="handleSelectionChange" + > <el-table-column type="selection" width="40px" align="center" /> <el-table-column label="搴忓彿" align="center" prop="newID" width="50px" /> <el-table-column label="妯℃澘鍚嶇О" align="center" prop="tempName" /> <el-table-column label="妯℃澘绫诲瀷" align="center" prop="tempType"> <template slot-scope="scope"> - <dict-tag :options="dict.type.question_template_type" :value="scope.row.tempType" /> + <dict-tag + :options="dict.type.question_template_type" + :value="scope.row.tempType" + /> </template> </el-table-column> <el-table-column label="鍒涘缓浜�" align="center" prop="createBy" /> - <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" width="180"> + <el-table-column + label="鍒涘缓鏃堕棿" + align="center" + prop="createTime" + width="180" + > <template slot-scope="scope"> <span>{{ parseTime(scope.row.createTime) }}</span> </template> </el-table-column> <el-table-column label="淇敼浜�" align="center" prop="updateBy" /> - <el-table-column label="淇敼鏃堕棿" align="center" prop="updateTime" width="180"> + <el-table-column + label="淇敼鏃堕棿" + align="center" + prop="updateTime" + width="180" + > <template slot-scope="scope"> <span>{{ parseTime(scope.row.updateTime) }}</span> </template> </el-table-column> + <el-table-column label="鍚敤鏍囧織" align="center" prop="qybz"> + <template slot-scope="scope" v-if="scope.row.userId !== 1"> + <el-switch + v-model="scope.row.qybz" + active-value="0" + inactive-value="1" + @change="handleStatusChange(scope.row)" + ></el-switch> + </template> + </el-table-column> <el-table-column label="澶囨敞" align="center" prop="remark" /> - <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width" width="80px"> + <el-table-column + label="鎿嶄綔" + align="center" + class-name="small-padding fixed-width" + width="80px" + > <template slot-scope="scope"> - <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" - v-hasPermi="['hosp:surveyTemplate:edit']" title="淇敼"> + <el-button + size="mini" + type="text" + icon="el-icon-view" + @click="xiangqing(scope.row)" + v-hasPermi="['web:tags:edit']" + title="棰勮" + ></el-button> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['hosp:surveyTemplate:edit']" + title="淇敼" + > </el-button> - <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" - v-hasPermi="['hosp:surveyTemplate:remove']" title="鍒犻櫎"> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['hosp:surveyTemplate:remove']" + title="鍒犻櫎" + > </el-button> </template> </el-table-column> @@ -70,11 +179,15 @@ <div class="pag"> <div class="pag1"> - <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" - @pagination="getList" /> + <pagination + v-show="total > 0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> </div> </div> - <!-- 娣诲姞鎴栦慨鏀归棶鍗锋ā鏉垮璇濇 --> <el-dialog :title="title" :visible.sync="open" width="450px" append-to-body> @@ -82,70 +195,162 @@ <el-form-item label="妯℃澘鍚嶇О" prop="tempName"> <el-input v-model="form.tempName" placeholder="璇疯緭鍏ユā鏉垮悕绉�" /> </el-form-item> + <el-form-item label="妯℃澘绫诲瀷" prop="tempType"> + <el-select v-model="form.tempType" style="width: 100%"> + <el-option + v-for="dict in dict.type.question_template_type" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select> + </el-form-item> + <el-form-item label="澶囨敞" prop="remark"> <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" /> </el-form-item> - <el-divider content-position="center">闂嵎妯℃澘闂淇℃伅</el-divider> - <el-row :gutter="10" class="mb8"> - <el-col :span="1.5"> - <el-button type="primary" icon="el-icon-plus" size="mini" @click="addmembers()">娣诲姞 - </el-button> - </el-col> - <el-col :span="1.5"> - <el-button type="danger" icon="el-icon-delete" size="mini" @click.native.prevent="Delete()">鍒犻櫎 - </el-button> - </el-col> - </el-row> - <el-table style="width:450px" border :data="form.tjSurveyTempQuesList" - @selection-change="handleTjSurveyTempQuesSelectionChange"> - <el-table-column type="selection" width="40" align="center" /> - <el-table-column label="闂id" prop="qid" width="179"> - <template slot-scope="scope"> - <el-input v-model="scope.row.qid" placeholder="璇疯緭鍏ラ棶棰榠d" /> - </template> - </el-table-column> - <el-table-column label="闂鍚�" prop="qname" width="190"> - <template slot-scope="scope"> - <el-input v-model="scope.row.qname" placeholder="璇疯緭鍏ラ棶棰樺悕" /> - </template> - </el-table-column> - </el-table> </el-form> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> <el-button @click="cancel">鍙� 娑�</el-button> </div> </el-dialog> + <!-- 闂嵎璇︽儏鎶藉眽 --> + <el-drawer + title="闂嵎璇︽儏" + :visible.sync="drawer" + :with-header="true" + size="40%" + > + <el-form + v-for="(item, index) in intList" + :key="index" + style="margin-left: 15px" + > + <el-form-item> + <span + style="color: red; margin-left: 5px" + v-if="item.isRequired == 'Y'" + >*</span + > + {{ index + 1 > 9 ? index + 1 : "0" + (index + 1) }}.{{ + item.question + }} + <span v-if="item.type == '0'">(鍗曢��)</span> + <span v-if="item.type == '1'">(澶氶��)</span><br /> + <label + v-for="(item5, index) in item.tjSurveyOptionsList" + :key="index" + > + <!-- <img v-show="item.type == '1'" v-if="item5.qid ==item.qid" class="select-radio" src="../../../assets/images/weixuanzhong.png" alt=""> + <img v-show="item.type == '1'" v-else class="select-radio1" src="../../../assets/images/xuanzhong.png" alt=""> --> + <input + v-show="item.type == '0'" + type="radio" + :name="item5.qid" + :value="item5.oid" + /><label class="inp" v-show="item.type == '0'">{{ + item5.ooption + }}</label> + <input + v-show="item.type == '1'" + type="checkbox" + :name="item5.qid" + :value="item5.oid" + /><label class="inp" v-show="item.type == '1'">{{ + item5.ooption + }}</label> + <el-rate + v-show="item.type == '2'" + v-model="myscore" + show-text + ></el-rate> + <el-input + v-show="item.type == '3'" + v-model="inpu" + style="width: 280px" + /> + <!-- <el-date-picker + v-show="item.type == '4'" + v-model="value2" + align="right" + type="date" + placeholder="閫夋嫨鏃ユ湡" + :picker-options="pickerOptions" + > + </el-date-picker> --> + <!-- <el-input-number + v-show="item.type == '5'" + v-model="num" + :min="1" + :max="10000" + ></el-input-number> + <el-input-number + v-show="item.type == '6'" + v-model="numf" + :precision="2" + :step="0.0" + :max="10000" + ></el-input-number> --> + </label> + </el-form-item> + </el-form> + <!-- <el-button type="primary" size="mini" @click="tijiao">鎻愪氦</el-button> --> + </el-drawer> + <el-drawer + :visible.sync="previewDialogVisible" + :before-close="handleClose" + size="40%" + > + <pre-view :key="previewKey" :preview-qrcode="true" /> + </el-drawer> </div> </template> <script> +import PreView from "./editor/preview"; +import VueQr from "vue-qr"; import { listSurveyTemplate, getSurveyTemplate, delSurveyTemplate, addSurveyTemplate, updateSurveyTemplate, + getneedDesign, + getcanDelete, + updateQybz, + getQuesByMid, } from "@/api/hosp/surveyTemplate"; import { Message } from "element-ui"; export default { + inject: ["reload"], name: "SurveyTemplate", + components: { + PreView, + VueQr, + }, dicts: ["question_template_type"], data() { let checkPhoneNum = (rule, value, callback) => { - console.log( value) + console.log(value); let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/); if (value == "" && value == undefined && !value) { - return callback(''); - } else if(value != undefined && value != ""){ + return callback(""); + } else if (value != undefined && value != "") { return callback(); - }else if (!patter.test(value)) { - return callback(''); + } else if (!patter.test(value)) { + return callback(""); } }; return { + inpu: "", + num: 0, + myscore: null, // 閬僵灞� loading: true, + drawer: false, + previewKey: +new Date(), + previewDialogVisible: false, // 閫変腑鏁扮粍 ids: [], // 瀛愯〃閫変腑鏁版嵁 @@ -165,8 +370,11 @@ selectionList: [], // 寮瑰嚭灞傛爣棰� title: "", + intList: [], // 鏄惁鏄剧ず寮瑰嚭灞� open: false, + DaTianYa: false, + details: false, // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, @@ -182,7 +390,7 @@ deleted: [ { required: true, - validator: checkPhoneNum, + validator: checkPhoneNum, trigger: "blur", }, ], @@ -241,20 +449,39 @@ }, // 澶氶�夋閫変腑鏁版嵁 handleSelectionChange(selection) { + console.log(selection); this.ids = selection.map((item) => item.mid); this.single = selection.length !== 1; this.multiple = !selection.length; + if (selection.length != 0) { + selection.forEach((item) => { + if (item.designId != null) { + this.details = true; + } else { + this.details = false; + } + }); + } else { + this.details = false; + } }, handleTjSurveyTempQuesSelectionChange(selection) { - this.selectionList =[] - this.selectionList = selection - + this.selectionList = []; + this.selectionList = selection; }, /** 鏂板鎸夐挳鎿嶄綔 */ handleAdd() { this.reset(); - this.open = true; this.title = "娣诲姞闂嵎妯℃澘"; + + getneedDesign().then((res) => { + if (res.msg == "false") { + this.DaTianYa = false; + } else { + this.DaTianYa = true; + } + this.open = true; + }); }, // 鏂板琛� addmembers() { @@ -282,20 +509,62 @@ }, // 鍒犻櫎琛� Delete() { - let that = this + let that = this; if (!that.selectionList) { - that.$modal.msgSuccess('璇烽�夋嫨闇�瑕佸垹闄ょ殑鏁版嵁') + that.$modal.msgSuccess("璇烽�夋嫨闇�瑕佸垹闄ょ殑鏁版嵁"); } else { - console.log( that.form.tjSurveyTempQuesList) - that.selectionList.forEach(item =>{ - that.form.tjSurveyTempQuesList.forEach((item1,index) => { - if(item.qid == item1.qid){ + that.selectionList.forEach((item) => { + that.form.tjSurveyTempQuesList.forEach((item1, index) => { + if (item.qid == item1.qid) { that.form.tjSurveyTempQuesList.splice(index, 1); } - }) - }) - + }); + }); } + }, + xiangqing(row) { + const mid = row.mid; + getSurveyTemplate(mid).then((response) => { + if (response.data.designId == null) { + this.drawer = true; + getQuesByMid(mid) + .then((res) => { + res.data.sort( + (a, b) => + new Date(a.createTime).getTime() - + new Date(b.createTime).getTime() + ); //杩欐槸鍗囧簭锛屽�掑簭鐨勮瘽缈昏繃鏉� + this.intList = res.data; + }) + .catch((err) => { + // 閫氳繃catch鎹曡幏閿欒娑堟伅 + return err; + }); + } else { + this.$router.push({ + query: { key: response.data.designId }, + }); + this.previewDialogVisible = true; + } + }); + }, + handleClose() { + this.reload(); + this.previewDialogVisible = false; + }, + handleStatusChange(row) { + let text = row.qybz === "0" ? "鍚敤" : "鍋滅敤"; + this.$modal + .confirm('纭瑕�"' + text + '""' + row.tempName + '"闂嵎鍚楋紵') + .then(function () { + return updateQybz(row.mid, row.qybz); + }) + .then(() => { + this.$modal.msgSuccess(text + "鎴愬姛"); + }) + .catch(function () { + row.qybz = row.qybz === "0" ? "1" : "0"; + }); }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { @@ -303,9 +572,34 @@ const mid = row.mid || this.ids; getSurveyTemplate(mid).then((response) => { this.form = response.data; - this.form.tjSurveyTempQuesList = response.data.tjSurveyTempQuesList; - this.open = true; + if (response.data.tjSurveyTempQuesList.length >= 1) { + this.form.tjSurveyTempQuesList = response.data.tjSurveyTempQuesList; + } + if (this.form.designId == null) { + this.DaTianYa = false; + this.title = "淇敼闂嵎妯℃澘"; + this.open = true; + } else { + this.DaTianYa = true; + this.form.formKey = this.form.designId; + this.form.type = 1; + this.toProjectHandle(this.form, "editor"); + } + }); + }, + + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate1(row) { + this.reset(); + const mid = row.mid || this.ids; + getSurveyTemplate(mid).then((response) => { + this.form = response.data; + if (response.data.tjSurveyTempQuesList.length >= 1) { + this.form.tjSurveyTempQuesList = response.data.tjSurveyTempQuesList; + } + this.DaTianYa = false; this.title = "淇敼闂嵎妯℃澘"; + this.open = true; }); }, /** 鎻愪氦鎸夐挳 */ @@ -320,12 +614,22 @@ }); } else { addSurveyTemplate(this.form).then((response) => { - this.$modal.msgSuccess("鏂板鎴愬姛"); + if (this.DaTianYa == false) { + this.$modal.msgSuccess("鏂板鎴愬姛"); + } else { + this.toProjectHandle(response.data, "editor"); + } this.open = false; this.getList(); }); } } + }); + }, + toProjectHandle(form, type) { + this.$router.push({ + path: "/editor/moban", + query: { key: form.formKey, active: type, type: form.type }, }); }, /** 鍒犻櫎鎸夐挳鎿嶄綔 */ @@ -334,13 +638,23 @@ this.$modal .confirm('鏄惁纭鍒犻櫎闄㈠尯淇℃伅缂栧彿涓�"' + mids + '"鐨勬暟鎹」锛�') .then(function () { - return delSurveyTemplate(mids); + let id = row.mid; + return getcanDelete(id).then((res) => { + if (res.data == true) { + delSurveyTemplate(mids); + } else { + this.$modal.msgError("闂嵎姝e湪浣跨敤涓�"); + } + }); + // return delSurveyTemplate(mids); }) .then(() => { this.getList(); this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); }) - .catch(() => { }); + .catch(() => { + this.$modal.msgError("闂嵎姝e湪浣跨敤涓�"); + }); }, /** 瀵煎嚭鎸夐挳鎿嶄綔 */ handleExport() { @@ -364,4 +678,5 @@ .pag1 { width: 30%; -}</style> +} +</style> -- Gitblit v1.8.0