From 74a7a2bbef241a023110ff24c8e7c84025e267f5 Mon Sep 17 00:00:00 2001 From: qinxianzhangyao <11053546+qinxianzhangyao@user.noreply.gitee.com> Date: 星期四, 25 四月 2024 10:09:38 +0800 Subject: [PATCH] qxtj --- src/views/hosp/surveyTemplate/index.vue | 367 +++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 291 insertions(+), 76 deletions(-) diff --git a/src/views/hosp/surveyTemplate/index.vue b/src/views/hosp/surveyTemplate/index.vue index e0712aa..14c0dc5 100644 --- a/src/views/hosp/surveyTemplate/index.vue +++ b/src/views/hosp/surveyTemplate/index.vue @@ -1,68 +1,166 @@ <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="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 +168,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 +184,118 @@ <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> + <div v-if="DaTianYa == false"> + <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> + </div> </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 + :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, } 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 { // 閬僵灞� loading: true, + previewKey: +new Date(), + previewDialogVisible:false, // 閫変腑鏁扮粍 ids: [], // 瀛愯〃閫変腑鏁版嵁 @@ -167,6 +317,7 @@ title: "", // 鏄惁鏄剧ず寮瑰嚭灞� open: false, + DaTianYa: false, // 鏌ヨ鍙傛暟 queryParams: { pageNum: 1, @@ -182,7 +333,7 @@ deleted: [ { required: true, - validator: checkPhoneNum, + validator: checkPhoneNum, trigger: "blur", }, ], @@ -246,15 +397,21 @@ this.multiple = !selection.length; }, 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 +439,50 @@ }, // 鍒犻櫎琛� 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){ + console.log(that.form.tjSurveyTempQuesList); + 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) { + + } 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 +490,19 @@ const mid = row.mid || this.ids; getSurveyTemplate(mid).then((response) => { this.form = response.data; - this.form.tjSurveyTempQuesList = response.data.tjSurveyTempQuesList; - this.open = true; - this.title = "淇敼闂嵎妯℃澘"; + 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"); + } }); }, /** 鎻愪氦鎸夐挳 */ @@ -320,12 +517,19 @@ }); } else { addSurveyTemplate(this.form).then((response) => { - this.$modal.msgSuccess("鏂板鎴愬姛"); + // this.$modal.msgSuccess("鏂板鎴愬姛"); + 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 +538,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 +578,5 @@ .pag1 { width: 30%; -}</style> +} +</style> -- Gitblit v1.8.0