From dc3d15dfe0c4a4a85bc5b4df7959b84a02beb064 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期一, 11 十二月 2023 10:48:04 +0800 Subject: [PATCH] 随访题库完成 --- src/views/repositoryai/verbaltrick/index.vue | 874 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 869 insertions(+), 5 deletions(-) diff --git a/src/views/repositoryai/verbaltrick/index.vue b/src/views/repositoryai/verbaltrick/index.vue index 0b9f6ad..6cbcb07 100644 --- a/src/views/repositoryai/verbaltrick/index.vue +++ b/src/views/repositoryai/verbaltrick/index.vue @@ -1,17 +1,881 @@ <template> - <div>璇濇湳搴�</div> + <div class="Questionnairemanagement"> + <!-- 宸︿晶鏍� --> + <div class="sidecolumn"> + <div class="sidecolumn-top"> + <div class="top-wj">闂绫诲瀷</div> + <div class="top-tj" @click="dialogFormVisible = true">+娣诲姞</div> + </div> + <div class="center-ss"> + <el-input + placeholder="璇疯緭鍏ュ唴瀹�" + v-model="sidecolumnval" + class="input-with-select" + size="medium " + > + <el-button + @click="sidecolumnss" + slot="append" + icon="el-icon-search" + ></el-button> + </el-input> + </div> + <div class="bottom-fl"> + <el-menu + default-active="3" + class="el-menu-vertical-demo" + @open="handleOpen" + @close="handleClose" + @select="handleSelect" + > + <el-submenu index="1"> + <template slot="title"> + <i class="el-icon-location"></i> + <span>鍒嗙被涓�</span> + </template> + + <el-menu-item index="1-1">閫夐」1</el-menu-item> + <el-menu-item index="1-2">閫夐」2</el-menu-item> + <el-menu-item index="1-3">閫夐」3</el-menu-item> + <el-menu-item index="1-4">閫夐」3</el-menu-item> + </el-submenu> + <el-submenu index="2"> + <template slot="title"> + <i class="el-icon-menu"></i> + <span>鍒嗙被浜�</span> + </template> + <el-menu-item index="2-1">閫夐」1</el-menu-item> + <el-menu-item index="2-2">閫夐」2</el-menu-item> + <el-menu-item index="2-3">閫夐」3</el-menu-item> + </el-submenu> + <el-submenu index="3"> + <template slot="title"> + <i class="el-icon-document"></i> + <span>鍒嗙被涓�</span> + </template> + <el-menu-item index="2-1">閫夐」1</el-menu-item> + </el-submenu> + <el-submenu index="4"> + <template slot="title"> + <i class="el-icon-setting"></i> + <span>鍒嗙被鍥�</span> + </template> + <el-menu-item index="2-1">閫夐」1</el-menu-item> + </el-submenu> + </el-menu> + </div> + </div> + <!-- 鍙充晶鏁版嵁 --> + <div class="leftvlue"> + <div class="leftvlue-bg"> + <el-row :gutter="20"> + <!--鐢ㄦ埛鏁版嵁--> + <el-col :span="24" :xs="24"> + <el-form + :model="queryParams" + ref="queryForm" + size="small" + :inline="true" + v-show="showSearch" + label-width="98px" + > + <el-form-item label="鍙敤闄㈠尯" prop="status"> + <el-select v-model="queryParams.courtyard" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in languagelist" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label="闂涓婚" prop="userName"> + <el-input + v-model="queryParams.userName" + placeholder="璇疯緭鍏�" + clearable + style="width: 200px" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鍏宠仈鎸囨爣" prop="userName"> + <el-input + v-model="queryParams.userName" + placeholder="璇疯緭鍏�" + clearable + style="width: 200px" + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="閫傜敤鏂瑰紡" prop="status"> + <el-select v-model="queryParams.applyway" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in languagelist" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label="璇█" prop="status"> + <el-select v-model="queryParams.status" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in languagelist" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label="鏄惁鍙敤" prop="status"> + <el-select v-model="queryParams.status" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in qyoptions" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + + <el-form-item> + <el-button + type="primary" + icon="el-icon-search" + size="medium" + @click="handleQuery" + >鎼滅储</el-button + > + <el-button + icon="el-icon-refresh" + size="medium" + @click="resetQuery" + >閲嶇疆</el-button + > + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="medium" + @click="handleAdd" + v-hasPermi="['system:user:add']" + >鏂板</el-button + > + </el-col> + + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="medium" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['system:user:remove']" + >鍒犻櫎</el-button + > + </el-col> + </el-row> + <el-table + v-loading="loading" + :data="userList" + :border="true" + @selection-change="handleSelectionChange" + > + <el-table-column type="selection" width="50" align="center" /> + <el-table-column + label="搴忓彿" + align="center" + key="userId" + prop="userId" + /> + <el-table-column + label="闂涓婚" + align="center" + key="userName" + prop="userName" + :show-overflow-tooltip="true" + /> + <el-table-column + label="闂鏂囨湰" + align="center" + key="nickName" + prop="nickName" + width="200" + :show-overflow-tooltip="true" + /> + + <el-table-column + label="闂璇煶" + align="center" + key="aphonenumber" + prop="aphonenumber" + width="200" + /><el-table-column + label="鍏宠仈鎸囨爣" + align="center" + key="bphonenumbers" + prop="bphonenumbers" + width="120" + /> + /><el-table-column + label="姝e父鍊艰寖鍥�" + align="center" + key="scope" + prop="scope" + width="120" + /> + /><el-table-column + label="闂鎻忚堪" + align="center" + key="describe" + prop="describe" + width="120" + /> + /><el-table-column + label="閫傜敤鏂瑰紡" + align="center" + key="application" + prop="application" + width="120" + /> + /><el-table-column + label="閫傜敤鐤剧梾" + align="center" + key="Applicable" + prop="Applicable" + width="120" + /> + <el-table-column + label="鏍囩" + align="center" + key="taglist" + prop="taglist" + width="120" + /> + <el-table-column + label="璇█" + align="center" + key="indicator" + prop="indicator" + width="120" + /> + <el-table-column + label="鐗堟湰" + align="center" + key="versions" + prop="versions" + width="120" + /> + <el-table-column + label="鍙敤" + align="center" + key="usable" + prop="usable" + width="120" + /> + <el-table-column + label="鏈�杩戜慨鏀�" + align="center" + key="Recentrevision" + prop="Recentrevision" + width="120" + /> + <el-table-column label="鏄惁鍙敤" align="center" key="status"> + <template slot-scope="scope"> + <el-switch + v-model="scope.row.status" + active-value="0" + inactive-value="1" + @change="handleStatusChange(scope.row)" + ></el-switch> + </template> + </el-table-column> + + <el-table-column + label="鎿嶄綔" + align="center" + width="250" + class-name="small-padding fixed-width" + > + <template slot-scope="scope"> + <el-button + size="medium" + type="text" + @click="compileUpdate(scope.row)" + v-hasPermi="['system:user:edit']" + ><span class="button-bji" + ><i class="el-icon-edit"></i>缂栬緫闂</span + ></el-button + > + <el-button + size="medium" + type="text" + @click="handleDelete(scope.row)" + v-hasPermi="['system:user:remove']" + ><span class="button-textsc" + ><i class="el-icon-delete-solid"></i>鍒犻櫎</span + ></el-button + > + <el-button + size="medium" + type="text" + @click="handleDelete(scope.row)" + v-hasPermi="['system:user:remove']" + ><span class="button-text" + ><i class="el-icon-view"></i>棰勮</span + ></el-button + > + </template> + </el-table-column> + </el-table> + + <pagination + v-show="total > 0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + </el-col> + </el-row> + </div> + </div> + <!-- 娣诲姞绫诲埆寮规 --> + <el-dialog + :title="amendtag ? '淇敼绫诲埆' : '鏂板绫诲埆'" + width="30%" + :visible.sync="dialogFormVisible" + > + <el-form :model="classifyform"> + <el-form-item label="璇烽�夋嫨闂嵎澶х被"> + <el-select v-model="classifyform.broadheading" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in editableTabs" + :key="item.title" + :label="item.title" + :value="item.title" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item + :label="amendtag ? '璇疯緭鍏ユ柊鐨勭被鍒悕绉�' : '璇疯緭鍏ョ被鍒悕绉�'" + > + <el-input + v-model="classifyform.categoryname" + autocomplete="off" + ></el-input> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="dialogFormVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="submitsidecolumn">纭� 瀹�</el-button> + </div> + </el-dialog> + <!-- 鍒犻櫎绫诲埆纭妗� --> + <el-dialog title="璀﹀憡" :visible.sync="deleteVisible" width="40%"> + <div style="font-size: 20px; color: rgb(247, 76, 76)"> + 鏄惁纭鍒犻櫎鍒嗙被锛歔<span>{{ deletefenl }}</span + >]? + </div> + <div style="font-size: 20px"> + 姝ゆ搷浣滀細灏嗚绫诲埆涓嬫墍鏈夋ā鍧楄浆绉昏嚦[鏈垎绫籡锛屾槸鍚︾户缁垹闄ゆ鍒嗙被锛� + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="deleteVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="deletefenlei">纭� 瀹�</el-button> + </span> + </el-dialog> + </div> </template> <script> +import { + listUser, + getUser, + delUser, + addUser, + updateUser, +} from "@/api/system/user"; +import { getToken } from "@/utils/auth"; +import Treeselect from "@riophae/vue-treeselect"; +import "@riophae/vue-treeselect/dist/vue-treeselect.css"; export default { + name: "questionnaire", + dicts: ["sys_normal_disable", "sys_user_sex"], + components: { Treeselect }, data() { - return {}; + return { + topactiveName: "Local", //椤堕儴閫夋嫨 + // 閬僵灞� + loading: false, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + namequestionnaire: "", + haoquestionnaire: "", + idds: "", + amendtag: false, //鏄惁淇敼绫诲埆 + dialogFormVisible: false, //淇敼娣诲姞绫诲埆寮规 + deleteVisible: false, //鍒嗙被鍒犻櫎寮规 + deletefenl: "楂樿鍘�", //鍒犻櫎椤� + classifyform: { + categoryname: "", + }, //绫诲埆琛ㄥ崟 + // 琛ㄦ牸鏁版嵁 + userList: [ + { + userid: 1, + userName: "琛�甯歌銆佸翱甯歌", + nickName: "璐", + aphonenumber: "(?!涓�.*|娌�.*|鏈�.*)^.*([璐钩鍑]|璐|璇勫|璇勫),10", + bphonenumber: "閫夋嫨", + cphonenumber: "鏅�氳瘽", + status: "0", + }, + ], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏃ユ湡鑼冨洿 + dateRange: [], + // 宀椾綅閫夐」 + postOptions: [], + // 瑙掕壊閫夐」 + roleOptions: [], + // 娣诲姞銆佷慨鏀瑰弬鏁� + indexform: {}, + numberlb: 22, + numberlbs: 2, + sidecolumnform: {}, //娣诲姞绫诲埆琛ㄥ崟 + dialogFormVisible: false, //娣诲姞绫诲埆寮规 + sidecolumnval: "", //绫诲埆鎼滅储 + indexopen: false, //寮规灞曠ず鍚� + propss: { multiple: true }, + languagelist: [ + { + value: 1, + label: "鏅�氳瘽", + }, + { + value: 2, + label: "绮よ", + }, + { + value: 3, + label: "鑻辫", + }, + ], //璇█鍒楄〃 + qyoptions: [ + { + value: 1, + label: "鍙敤", + }, + { + value: 2, + label: "绂佺敤", + }, + ], + //绫诲埆鍒楄〃 + editableTabs: [ + { + title: "闂鍒嗙被涓�", + number: "1", + }, + { + title: "闂鍒嗙被浜�", + number: "2", + }, + { + title: "闂鍒嗙被涓�", + number: "2", + }, + { + title: "闂鍒嗙被鍥�", + number: "2", + }, + { + title: "闂鍒嗙被浜�", + number: "2", + }, + ], + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + userName: undefined, + phonenumber: undefined, + status: undefined, + deptId: undefined, + IDnumber: undefined, + }, + // 琛ㄥ崟鏍¢獙 + rules: { + userName: [ + { required: true, message: "涓绘棬涓嶈兘涓虹┖", trigger: "blur" }, + { + min: 2, + max: 20, + message: "鐢ㄦ埛鍚嶇О闀垮害蹇呴』浠嬩簬 2 鍜� 20 涔嬮棿", + trigger: "blur", + }, + ], + nickName: [ + { required: true, message: "鐢ㄦ埛鏄电О涓嶈兘涓虹┖", trigger: "blur" }, + ], + password: [ + { required: true, message: "鐢ㄦ埛瀵嗙爜涓嶈兘涓虹┖", trigger: "blur" }, + { + min: 5, + max: 20, + message: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿", + trigger: "blur", + }, + ], + email: [ + { + type: "email", + message: "璇疯緭鍏ユ纭殑閭鍦板潃", + trigger: ["blur", "change"], + }, + ], + phonenumber: [ + { + pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, + message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜", + trigger: "blur", + }, + ], + IDnumber: [ + { + pattern: + /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/, + message: "璇疯緭鍏ユ纭殑韬唤璇佸彿鐮�", + trigger: "blur", + }, + ], + }, + }; + }, + watch: {}, + created() { + this.getList(); }, - created() {}, + methods: { + /** 鏌ヨ鐢ㄦ埛鍒楄〃 */ + getList() { + // this.loading = true; + listUser().then((response) => { + console.log(response); + console.log(this.userList); + }); + }, + // 娣诲姞銆佷慨鏀圭被鍒� + submitsidecolumn() { + if (this.amendtag) { + this.classifyform.tagcategoryid = this.idds; + // toamendtagcategory(this.addDateRange(this.classifyform)).then( + // (response) => { + // console.log(response); + // this.gitclasify(); + // } + // ); + } else { + // addtagcategory(this.addDateRange(this.classifyform)).then( + // (response) => { + // console.log(response); + // this.gitclasify(); + // } + // ); + } + this.classifyform = { + categoryname: "", + }; + this.idds = ""; + this.dialogFormVisible = false; + }, + //鍒犻櫎鍒嗙被 + deletefenlei(row) { + if (this.deleteVisible) { + // deletetagcategory(this.idds).then((response) => { + // console.log(response); + // this.gitclasify(); + // }); + this.deleteVisible = false; + this.idds = ""; + } else { + this.deleteVisible = true; + this.idds = row.tagcategoryid; + this.deletefenl = row.title; + } + }, + compileUpdate(row) { + this.$router.push({ + path: "/knowledge/verbaltrick/particulars/", + query: { id: "1" }, + }); + }, + // 棰樼洰鐘舵�佷慨鏀� + handleStatusChange(row) { + let text = row.status === "0" ? "鍙敤" : "鍋滅敤"; + this.$modal + .confirm('纭瑕�"' + text + '""' + row.userName + '"鐢ㄦ埛鍚楋紵') + .then(function () { + return changeUserStatus(row.userId, row.status); + }) + .then(() => { + this.$modal.msgSuccess(text + "鎴愬姛"); + }) + .catch(function () { + row.status = row.status === "0" ? "1" : "0"; + }); + }, + // 渚ц竟-------------- + handleOpen(key, keyPath) { + console.log(key, keyPath); + }, + handleClose(key, keyPath) { + console.log(key, keyPath); + }, + handleSelect(key, keyPath) { + console.log(key, keyPath); + }, + //鎼滅储绫诲埆 + sidecolumnss() {}, + // 渚挎嵎鏍囩 + tsgnameto() {}, + // 鍙栨秷鎸夐挳 + cancel() { + this.indexopen = false; + this.reset(); + }, - methods: {}, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + userId: undefined, + deptId: undefined, + userName: undefined, + nickName: undefined, + password: undefined, + phonenumber: undefined, + email: undefined, + sex: undefined, + status: "0", + remark: undefined, + postIds: [], + roleIds: [], + }; + this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.dateRange = []; + this.resetForm("queryForm"); + this.queryParams.deptId = undefined; + this.$refs.tree.setCurrentKey(null); + this.handleQuery(); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map((item) => item.userId); + this.single = selection.length != 1; + this.multiple = !selection.length; + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.$router.push({ + path: "/knowledge/verbaltrick/particulars/", + query: { id: "1" }, + }); + }, + // 淇敼鍒嗙被寮规 + popoveramend(tagcategoryid) { + this.idds = tagcategoryid; + this.amendtag = true; + this.dialogFormVisible = true; + }, + + /** 鏇存柊/淇敼鎻愪氦鎸夐挳 */ + submitForm: function () { + this.$refs["form"].validate((valid) => { + if (valid) { + if (this.form.userId != undefined) { + updateUser(this.form).then((response) => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.indexopen = false; + this.getList(); + }); + } else { + addUser(this.form).then((response) => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.indexopen = false; + this.getList(); + }); + } + } + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const userIds = row.userId || this.ids; + this.$modal + .confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + userIds + '"鐨勬暟鎹」锛�') + .then(function () { + return delUser(userIds); + }) + .then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }) + .catch(() => {}); + }, + }, }; </script> -<style lang="scss" scoped></style> +<style lang="scss" scoped> +.Questionnairemanagement { + display: flex; +} +.sidecolumn { + width: 300px; + min-height: 100vh; + text-align: center; + // display: flex; + margin-top: 20px; + margin: 20px; + padding: 30px; + background: #edf1f7; + 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); + .sidecolumn-top { + display: flex; + justify-content: space-between; + .top-wj { + font-size: 20px; + } + .top-tj { + font-size: 18px; + + color: rgb(0, 89, 255); + cursor: pointer; + } + } + .center-ss { + margin-top: 30px; + .input-with-select { + height: 40px !important; + } + } + .bottom-fl { + margin-top: 30px; + display: center !important; + } +} +.qrcode-dialo { + text-align: center; + // display: flex; + margin: 20px; + padding: 30px; + background: #edf1f7; + 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); + .qrcode-text { + font-size: 20px; + span { + margin-left: 20px; + } + } + .qrcode-img { + width: 300px; + height: 400px; + } +} +.tsgname { + width: 90px; + margin-right: 10px; + text-align: center; + cursor: pointer; + height: 40px; + line-height: 40px; + background: #7799fa; + color: #ffff; + font-size: 18px; + border-radius: 5px; +} +.tsgname:hover { + background: #3366f5; +} +::v-deep.el-tabs--left, +.el-tabs--right { + overflow: hidden; + align-items: center; + display: flex; +} +::v-deep.el-input--medium .el-input__inner { + height: 40px !important; +} +::v-deep.el-tabs--right .el-tabs__active-bar.is-right { + height: 40px; + width: 5px; + left: 0; +} +::v-deep.el-tabs--right .el-tabs__item.is-right { + display: block; + font-size: 20px; +} +.leftvlue { + // display: flex; + // flex: 1; + width: 80%; + margin-top: 20px; + // margin: 20px; + padding: 30px; + 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); + .mulsz { + font-size: 20px; + } +} +.button-text { + color: rgb(70, 204, 238); +} +.button-bji { + color: rgb(39, 167, 67); +} +.button-textxg { + color: rgb(35, 81, 233); +} +.button-textsc { + color: rgb(235, 23, 23); +} +</style> -- Gitblit v1.9.3