From d8887d36d08e3a0a5068763c8460b0b4f16e87ee Mon Sep 17 00:00:00 2001 From: shikeying <pxzsky@163.com> Date: 星期一, 03 四月 2023 16:21:37 +0800 Subject: [PATCH] 待办任务审批测试界面 --- src/api/activiti/task.js | 35 ++ src/views/etaa/question_bank/index.vue | 459 ++++++++++++++++++++++++++++++ src/api/etaa/question_bank.js | 77 +++++ src/views/activiti/task/done_list.vue | 194 ++++++++++++ src/views/activiti/task/index.vue | 126 ++++---- 5 files changed, 826 insertions(+), 65 deletions(-) diff --git a/src/api/activiti/task.js b/src/api/activiti/task.js index dfd933b..201e0a1 100644 --- a/src/api/activiti/task.js +++ b/src/api/activiti/task.js @@ -9,6 +9,41 @@ }) } +// 宸插姙浠诲姟鍒楄〃銆�2023-04-01 +export function listDone(query) { + return request({ + url: '/wf/task/list/done', + method: 'get', + params: query + }) +} + +// 娴佺▼瀹℃壒鍘嗗彶鍒楄〃銆�2023-04-03 +export function listApprove(processInstanceId) { + return request({ + url: '/wf/task/showApprove/' + processInstanceId, + method: 'get' + // params: query + }) +} + +// 寰呭姙浠诲姟璇︽儏銆�2023-04-03 +export function todoDetail(todoTask) { + return request({ + url: '/wf/task/todoDetail', + method: 'post', + data: todoTask + }) +} +// 鎻愪氦寰呭姙浠诲姟銆�2023-04-03 +export function transmission(workflowForm) { + return request({ + url: '/wf/task/transmission', + method: 'post', + data: workflowForm + }) +} + // 鏌ヨ琛ㄥ崟 export function formDataShow(taskID) { return request({ diff --git a/src/api/etaa/question_bank.js b/src/api/etaa/question_bank.js new file mode 100644 index 0000000..697d4a2 --- /dev/null +++ b/src/api/etaa/question_bank.js @@ -0,0 +1,77 @@ +import request from '@/utils/request' + +export function listQuestionType() { + return request({ + url: '/etaa/question_bank/select/get_question_type', + method: 'get' + // params: query + }) +} + +// 鏌ヨ閮ㄨ瘯棰樿〃 +export function listQuestion(query) { + return request({ + url: '/etaa/question_bank/list', + method: 'get', + params: query + }) +} + +// 璇曢鍒嗙被鏍戯紝鐩墠鏀惧湪鏁版嵁瀛楀吀涓� +export function listCatalogTreeList(dictType) { + return request({ + url: '/permit/dict/list_tree/' + dictType, + method: 'get' + }) +} +// +// // 鏌ヨ閮ㄩ棬璇︾粏 +// export function getDept(deptId) { +// return request({ +// url: '/system/dept/view/' + deptId, +// method: 'get' +// }) +// } +// +// // 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� +// export function treeselect(deptId) { +// return request({ +// // url: '/system/dept/treeselect', +// url: '/system/dept/select/tree_dept/' + deptId, +// method: 'get' +// }) +// } +// +// // 鏍规嵁瑙掕壊ID鏌ヨ閮ㄩ棬鏍戠粨鏋� +// export function roleDeptTreeselect(roleId) { +// return request({ +// url: '/system/dept/roleDeptTreeselect/' + roleId, +// method: 'get' +// }) +// } +// +// // 鏂板閮ㄩ棬 +// export function addDept(data) { +// return request({ +// url: '/system/dept/add', +// method: 'post', +// data: data +// }) +// } +// +// // 淇敼閮ㄩ棬 +// export function updateDept(data) { +// return request({ +// url: '/system/dept/edit', +// method: 'post', +// data: data +// }) +// } +// +// // 鍒犻櫎閮ㄩ棬 +// export function delDept(deptId) { +// return request({ +// url: '/system/dept/remove/' + deptId, +// method: 'get' +// }) +// } diff --git a/src/views/activiti/task/done_list.vue b/src/views/activiti/task/done_list.vue new file mode 100644 index 0000000..68350bf --- /dev/null +++ b/src/views/activiti/task/done_list.vue @@ -0,0 +1,194 @@ +<template> + <div class="app-container"> + + + <el-table v-loading="loading" :data="tastList"> + <!-- <el-table-column label="娴佺▼ID" align="center" prop="id"/>--> + <el-table-column label="娴佺▼鍚嶇О" align="left" prop="title"/> + <el-table-column label="浠诲姟鍚嶇О" align="left" prop="taskName"/> + <el-table-column label="浠诲姟鏍囪瘑" align="left" prop="taskDefineKey"/> + <el-table-column label="鎵ц浜�" align="left" prop="assignee"/> + <el-table-column label="浠g悊浜�" align="left" prop="owner"/> + <el-table-column label="浠诲姟寮�濮�" align="left" prop="startTime"/> + <el-table-column label="浠诲姟瀹屾垚" align="left" prop="endTime"/> + <el-table-column label="娴佺▼缁撴潫" align="left" prop="processEnd"/> + <el-table-column label="涓氬姟缂栧彿" align="left" prop="businessKey"/> + <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="showApprove(scope.row)" + v-hasPermi="['wf:task:**']" + >鏌ョ湅 + </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-dialog :title="title" :visible.sync="open" v-if="open" width="800px" append-to-body> +<!-- <leaveHistoryForm :businessKey="businessKey" v-if="'leave'==definitionKey"/>--> +<!-- <el-form :model="form" ref="form" label-width="100px" class="demo-dynamic">--> +<!-- <el-form-item--> +<!-- v-for="(domain, index) in form.formData"--> +<!-- :label="domain.controlLable"--> +<!-- :key="index"--> +<!-- >--> +<!-- <el-radio-group v-model="domain.controlValue" v-if="'radio'==domain.controlType">--> +<!-- <el-radio v-for="(defaults,indexd) in domain.controlDefault.split('--__--')"--> +<!-- :label=indexd--> +<!-- :key="indexd"--> +<!-- >{{defaults}}--> + +<!-- </el-radio>--> + +<!-- </el-radio-group>--> +<!-- <el-input type="textarea" v-model="domain.controlValue" v-if="'textarea'==domain.controlType"--> +<!-- ></el-input>--> +<!-- </el-form-item>--> +<!-- </el-form>--> + <div v-for="(approve, index) in approveList" + :key="index" > + <h2> + ---------------------------------- + {{approve.taskName}} + </h2> + <h3>浠诲姟寮�濮嬶細{{approve.startTime}}锛屼换鍔$粨鏉燂細{{approve.endTime}}</h3> + <h3 v-if="approve.taskCount==1">鍔炵悊浜�:{{approve.assignee}}锛屾剰瑙侊細{{approve.approveSummary}}</h3> + <h3 v-if="approve.taskCount==1">鍔炵悊鏃堕棿:{{approve.approveTime}}</h3> + <el-form v-for="(approveItem, indexH) in approve.children" :key="indexH" label-width="80px" v-if="approve.taskCount>1"> + <h3>鍔炵悊浜�:{{approveItem.assignee}}锛屾剰瑙侊細{{approveItem.approveSummary}}</h3> + <h3>鍔炵悊鏃堕棿:{{approveItem.approveTime}}</h3> +<!-- <el-form-item :label=approveItem.assignee v-if="approveItem.assignee !=''">--> +<!-- <el-input v-model="approveItem.approveTime"/>--> +<!-- </el-form-item>--> + </el-form> + </div> + + <div slot="footer" class="dialog-footer"> +<!-- <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>--> + <el-button @click="cancel">鍏� 闂�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> + + import {listDone, listApprove, formDataShow, formDataSave} from "@/api/activiti/task"; + // import leaveHistoryForm from "@/views/workflow/leave/leaveHistoryForm"; + + export default { + name: "DoneTask", + // components: {leaveHistoryForm}, + data() { + return { + id:'', + definitionKey: '', + businessKey: '', + // 閬僵灞� + loading: true, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 璇峰亣琛ㄦ牸鏁版嵁 + tastList: [], + + // 瀹℃壒鍘嗗彶闆嗗悎锛�2023-04-03 + approveList: [], + + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + }, + // 琛ㄥ崟鍙傛暟 + form: { + formData:[] + }, + // 琛ㄥ崟鏍¢獙 + rules: {} + }; + }, + created() { + this.getList(); + }, + methods: { + /** 鏌ヨ璇峰亣鍒楄〃 */ + getList() { + this.loading = true; + listDone(this.queryParams).then(response => { + this.tastList = response.data; + this.total = response.total; + this.loading = false; + }); + }, + + /** 鏌ヨ瀹℃壒鍘嗗彶闆嗗悎 */ + getApproveList(processInstanceId){ + this.loading = true; + listApprove(processInstanceId).then(response => { + this.approveList = response.data; + this.loading = false; + }); + }, + + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.definitionKey = '', + this.businessKey = '', + this.form = { + formData:[], + }; + this.resetForm("form"); + }, + + /** 灞曠ず瀹℃壒鍒楄〃 */ + showApprove(row) { + console.log("processInstanceId = " + row.processInstanceId) + this.reset(); + this.definitionKey = row.definitionKey; + this.businessKey = row.businessKey; + this.id=row.id; + this.getApproveList(row.processInstanceId); + this.open = true; + this.title = "瀹℃壒鍘嗗彶"; + } + + // /** 鎻愪氦鎸夐挳 */ + // submitForm() { + // formDataSave(this.id,this.form.formData).then(response => { + // this.$modal.msgSuccess("瀹℃壒鎴愬姛"); + // this.open = false; + // this.getList(); + // }); + // }, + } + }; +</script> diff --git a/src/views/activiti/task/index.vue b/src/views/activiti/task/index.vue index f5ed247..9452a39 100644 --- a/src/views/activiti/task/index.vue +++ b/src/views/activiti/task/index.vue @@ -1,14 +1,13 @@ <template> <div class="app-container"> - <el-table v-loading="loading" :data="tastList"> <!-- <el-table-column label="娴佺▼ID" align="center" prop="id"/>--> - <el-table-column label="娴佺▼鍚嶇О" align="center" prop="instanceName"/> - <el-table-column label="浠诲姟鑺傜偣鍚嶇О" align="center" prop="name"/> - <el-table-column label="浠诲姟鐘舵��" align="center" prop="status"/> - <el-table-column label="鍔炵悊浜�" align="center" prop="assignee"/> - <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createdDate"/> + <el-table-column label="娴佺▼鍚嶇О" align="center" prop="title"/> + <el-table-column label="浠诲姟鑺傜偣鍚嶇О" align="center" prop="taskName"/> + <el-table-column label="浠诲姟鐘舵��" align="center" prop=""/> + <el-table-column label="鍔炵悊浜�" align="center" prop="userId"/> + <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime"/> <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> <template slot-scope="scope"> @@ -16,7 +15,7 @@ size="mini" type="text" icon="el-icon-edit" - @click="examineAndApprove (scope.row)" + @click="showTodoDetail(scope.row)" v-hasPermi="['wf:task:**']" >瀹℃壒 </el-button> @@ -34,30 +33,40 @@ <!-- 瀹℃壒瀵硅瘽妗� --> <el-dialog :title="title" :visible.sync="open" v-if="open" width="500px" append-to-body> - <leaveHistoryForm :businessKey="businessKey" v-if="'leave'==definitionKey"/> - +<!-- <leaveHistoryForm :businessKey="businessKey" v-if="'leave'==definitionKey"/>--> <el-form :model="form" ref="form" label-width="100px" class="demo-dynamic"> - <el-form-item - v-for="(domain, index) in form.formData" - :label="domain.controlLable" - :key="index" - > - <el-radio-group v-model="domain.controlValue" v-if="'radio'==domain.controlType"> - <el-radio v-for="(defaults,indexd) in domain.controlDefault.split('--__--')" - :label=indexd - :key="indexd" - >{{defaults}} - - </el-radio> - - </el-radio-group> - <el-input type="textarea" v-model="domain.controlValue" v-if="'textarea'==domain.controlType" - ></el-input> + <el-form-item label="娴佺▼鍚嶇О"> + <el-input v-model="todoTask.title"/> </el-form-item> + <el-form-item label="浠诲姟鍚嶇О"> + <el-input v-model="todoTask.taskName"/> + </el-form-item> + <el-form-item label="涓氬姟涓婚敭" prop="businessKey"> +<!-- <el-input v-model="todoTask.businessKey"/>--> + <el-input v-model="form.businessKey"/> + </el-form-item> + <el-form-item label="娴佺▼鏍囪瘑" prop="processDefinitionKey"> +<!-- <el-input v-model="todoTask.processDefinitionKey"/>--> + <el-input v-model="form.processDefinitionKey"/> + </el-form-item> + <el-form-item label="浠诲姟ID" prop="taskInstanceId"> +<!-- <el-input v-model="todoTask.id"/>--> + <el-input v-model="form.taskInstanceId"/> + </el-form-item> + <el-form-item label="瀹℃壒閫夐」" prop="approveResult"> + <el-radio-group v-model="form.approveResult"> + <el-radio value="yes">鍚屾剰</el-radio> + <el-radio value="no">閫�鍥�</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="瀹℃壒鎰忚" prop="approveSummary"> + <el-input v-model="form.approveSummary" placeholder="杈撳叆瀹℃壒鎰忚" maxlength="90" /> + </el-form-item> + </el-form> <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button type="primary" @click="submitForm">杞� 鍙�</el-button> <el-button @click="cancel">鍙� 娑�</el-button> </div> </el-dialog> @@ -65,19 +74,19 @@ </template> <script> - - - import {listTask, formDataShow, formDataSave} from "@/api/activiti/task"; - import leaveHistoryForm from "@/views/workflow/leave/leaveHistoryForm"; + import {listTask, todoDetail, transmission, formDataShow, formDataSave} from "@/api/activiti/task"; + // import leaveHistoryForm from "@/views/workflow/leave/leaveHistoryForm"; export default { name: "Leave", - components: {leaveHistoryForm}, + components: {}, data() { return { id:'', definitionKey: '', businessKey: '', + // 褰撳墠寰呭姙浠诲姟璇︾粏锛堢偣鍑荤殑璇︽儏锛夛紝2023-04-03 + todoTask: undefined, // 閬僵灞� loading: true, // 閫変腑鏁扮粍 @@ -103,7 +112,13 @@ }, // 琛ㄥ崟鍙傛暟 form: { - formData:[] + businessKey: undefined, + processDefinitionKey: undefined, + assignee: undefined, + taskInstanceId: undefined, + approveResult: undefined, + approveSummary: '', + approveTime: undefined }, // 琛ㄥ崟鏍¢獙 rules: {} @@ -130,59 +145,40 @@ }, // 琛ㄥ崟閲嶇疆 reset() { - this.definitionKey = '', - this.businessKey = '', - this.form = { - formData:[], - }; + this.definitionKey = ''; + this.businessKey = ''; + this.form = {}; this.resetForm("form"); }, /** 瀹℃壒鎸夐挳鎿嶄綔 */ - examineAndApprove(row) { - console.log(row) + showTodoDetail(row) { + console.log(row); this.reset(); this.definitionKey = row.definitionKey; this.businessKey = row.businessKey; this.id=row.id; - formDataShow(row.id).then(response => { + todoDetail(row).then(response => { // FormProperty_3qipis2--__!!radio--__!!瀹℃壒鎰忚--__!!i--__!!鍚屾剰--__--涓嶅悓鎰� // FormProperty_0lffpcm--__!!textarea--__!!鎵规敞--__!!f--__!!null - let datas = response.data; - let formData = [] - for (let i = 0; i < datas.length; i++) { - let strings = datas[i].split('--__!!') - let controlValue = null - let controlDefault = null - switch (strings[1]) { - case 'radio': - controlValue = 0; - controlDefault = strings[4] - break; - // default: - } - formData.push({ - controlId: strings[0], - controlType: strings[1], - controlLable: strings[2], - controlIsParam: strings[3], - controlValue: controlValue, - controlDefault: controlDefault - }) - } - this.form.formData = formData; + this.todoTask = response.data; + this.form.businessKey = this.todoTask.businessKey; + this.form.taskInstanceId = this.todoTask.id; + this.form.processDefinitionKey = this.todoTask.processDefinitionKey; + + // this.form.formData = formData; this.open = true; this.title = "瀹℃壒"; }); }, /** 鎻愪氦鎸夐挳 */ submitForm() { - formDataSave(this.id,this.form.formData).then(response => { + transmission(this.form).then(response => { this.$modal.msgSuccess("瀹℃壒鎴愬姛"); this.open = false; this.getList(); }); - }, + } } }; </script> diff --git a/src/views/etaa/question_bank/index.vue b/src/views/etaa/question_bank/index.vue new file mode 100644 index 0000000..0b752d5 --- /dev/null +++ b/src/views/etaa/question_bank/index.vue @@ -0,0 +1,459 @@ +<template> + <div class="app-container"> + + <el-row :gutter="10" class="mb8"> + <el-col :span="6" :xs="24"> + <div class="head-container"> + <el-tree + :data="catalogListOptions" + :props="defaultProps" + :expand-on-click-node="false" + :filter-node-method="filterNode" + ref="tree" + default-expand-all + highlight-current + @node-click="handleNodeClick" + /> + </div> + </el-col> + <el-col :span="18" :xs="24"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form-item label="椤剁骇鍗曚綅" prop="orgId"> + <el-select v-model="queryParams.orgId" placeholder="閫夋嫨椤剁骇鍗曚綅" @change="getList()"> + <el-option + v-for="org in this.rootOrgList" + :key="org.id" + :label="org.dept_name" + :value="org.id" + /> + </el-select> + </el-form-item> + + <el-form-item label="璇曢绫诲瀷" prop="questionType"> + <el-select v-model="queryParams.questionType" placeholder="璇曢绫诲瀷"> + <el-option + v-for="d in this.questionTypeList" + :key="d.key" + :label="d.value" + :value="d.key" + /> + </el-select> + </el-form-item> + <el-form-item label="璇曢棰樼洰" prop="content"> + <el-input + v-model="queryParams.content" + placeholder="璇曢鍐呭" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> +<!-- <el-form-item label="涓撲笟鍒嗙被" prop="majorCode">--> +<!-- <el-select v-model="queryParams.majorCode" placeholder="璇烽�夋嫨涓撲笟鍒嗙被" clearable>--> +<!-- <el-option--> +<!-- v-for="dict in dict.type.sys_job_status"--> +<!-- :key="dict.value"--> +<!-- :label="dict.label"--> +<!-- :value="dict.value"--> +<!-- />--> +<!-- </el-select>--> +<!-- </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-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="mini" + @click="handleAdd" + v-hasPermi="['exam:online:add']" + >娣诲姞</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['exam:online:delBatch']" + >鍒犻櫎</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-search" + size="mini" + @click="handleExport" + v-hasPermi="['exam:online:exist']" + >鏌ラ噸</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-upload2" + size="mini" + @click="handleExport" + v-hasPermi="['exam:online:upload']" + >瀵煎叆</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="info" + plain + icon="el-icon-download" + size="mini" + @click="" + v-hasPermi="['exam:online:download']" + >妯℃澘涓嬭浇</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <el-table v-loading="loading" :data="examList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="left" /> + <el-table-column label="ID" align="left" prop="id" :show-overflow-tooltip="true" /> + <el-table-column label="褰掑睘" align="left" prop="parameter.orgName"/> + <el-table-column label="澶х被" align="left" prop="parameter.rootCatalogName"/> + <el-table-column label="瀛愬垎绫�" align="left" prop="parameter.majorCatalogName"/> + <el-table-column label="棰樼洰" align="left" prop="content" :show-overflow-tooltip="true" /> + <el-table-column label="璇曢绫诲瀷" align="left" prop="parameter.questionTypeName"/> + <el-table-column label="鍒涘缓浜�" align="left" prop="createUserId" :show-overflow-tooltip="true" /> + <el-table-column label="鍒涘缓鏃堕棿" align="left" prop="parameter.createTimeName" /> + <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['exam:online:edit']" + >淇敼</el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['exam:online:del']" + >鍒犻櫎</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> + + <!-- 娣诲姞鎴栦慨鏀瑰畾鏃朵换鍔″璇濇 --> + <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="120px"> + <el-row> + <el-col :span="24"> + <el-form-item label="鎵�灞炲垎绫�" prop="majorId"> + <el-select v-model="form.majorId" placeholder="璇烽�夋嫨鎵�灞炲垎绫�"> + <el-option + v-for="dict in dict.type.sys_job_group" + :key="dict.value" + :label="dict.label" + :value="dict.value" + ></el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="24"> + <el-form-item label="棰樼洰绫诲瀷" prop="type"> + <el-select v-model="form.type" placeholder="璇烽�夋嫨棰樼洰绫诲瀷"> + <el-option + v-for="dict in dict.type.sys_job_group" + :key="dict.value" + :label="dict.label" + :value="dict.value" + ></el-option> + </el-select> + </el-form-item> + </el-col> + <el-col :span="24"> + <el-form-item label="棰樼洰" prop="content"> + <el-input v-model="form.content" placeholder="璇疯緭鍏ラ鐩�"/> + </el-form-item> + </el-col> + </el-row> + </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-dialog title="璇曢搴撹缁�" :visible.sync="openView" width="700px" append-to-body> + <el-form ref="form" :model="form" label-width="120px" size="mini"> + <el-row> + <el-col :span="12"> + <el-form-item label="鎵�灞炲垎绫伙細">{{ form.id }}</el-form-item> + <el-form-item label="棰樼洰绫诲瀷锛�">{{ form.jobName }}</el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="棰樼洰锛�">{{ "" }}</el-form-item> + <el-form-item label="绛旀锛�">{{ form.createTime }}</el-form-item> + </el-col> + </el-row> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="openView = false">鍏� 闂�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> + // import { listJob, getJob, delJob, addJob, updateJob, runJob, changeJobStatus } from "@/api/monitor/job"; + import { listOrgRoot, listOrgRootTree } from '@/api/system/dept' + import { listCatalogTreeList, listQuestion, listQuestionType } from '@/api/etaa/question_bank' + + export default { + // components: { Crontab }, + name: "questionBank", + dicts: ['sys_job_status'], + data() { + return { + // 鏃ユ湡鑼冨洿 + dateRange: [], + // 閬僵灞� + loading: true, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 琛ㄦ牸鏁版嵁 + examList: [], + + // 2022-12-30 鏍规満鏋勫垪琛紝涓汉鍙兘鍒楀嚭鑷繁鎵�鍦ㄦ牴鏈烘瀯 + rootOrgList:[], + // 2022-12-30 瓒呯骇绠$悊鍛橀�夋嫨鐨勯《绾ф満鏋処D + selectedRootOrgId: undefined, + // 璇曢绫诲埆鍒楄〃锛�2023-03-11 + questionTypeList: [], + // 2023-03-13 璇曢绫诲埆鏍戞暟鎹�夐」 + catalogListOptions: undefined, + /** 鍒嗙被鏍戞暟鎹粨鏋� */ + defaultProps: { + children: "children", + label: "label" + }, + + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏄惁鏄剧ず璇︾粏寮瑰嚭灞� + openView: false, + // 鏄惁鏄剧ずCron琛ㄨ揪寮忓脊鍑哄眰 + openCron: false, + // 浼犲叆鐨勮〃杈惧紡 + expression: "", + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + content: undefined, + catalogId: undefined, + orgId: undefined, + questionType: undefined + }, + // 琛ㄥ崟鍙傛暟 + form: {}, + // 琛ㄥ崟鏍¢獙 + rules: { + content: [ + { required: true, message: "棰樼洰涓嶈兘涓虹┖", trigger: "blur" } + ] + } + }; + }, + created() { + this.getRootOrgList(); + this.getQuestionTypeList(); + }, + methods: { + /** 鑾峰彇璇曢绫诲埆闆嗗悎 2023-03-11 */ + getQuestionTypeList(){ + listQuestionType().then(response => { + // console.log(response.data); + this.questionTypeList = response.data; + }); + }, + /** 鑾峰彇椤剁骇鏈烘瀯鍒楄〃閫夋嫨妗� 2022-12-30 */ + getRootOrgList(){ + this.loading = true; + listOrgRoot().then(response => { + this.rootOrgList = response.data; + this.selectedRootOrgId = this.rootOrgList[0].id; + this.queryParams.orgId = this.selectedRootOrgId; + this.loading = false; + }).then(() => { + this.listCatalogTree(); + this.getList(); + }).catch(function() { + this.loading = false; + }); + }, + + // 璇曢绫诲埆鏍� + listCatalogTree(){ + listCatalogTreeList("question_root_catalog").then(response => { + console.log(response.data); + this.catalogListOptions = response.data; + }); + }, + + /** 鏌ヨ鍒楄〃 */ + getList() { + this.loading = true; + listQuestion(this.queryParams).then(response => { + this.examList = response.data; + this.total = response.total; + this.loading = false; + }); + }, + + // 绛涢�夎妭鐐� + filterNode(value, data) { + if (!value) return true; + console.log("value = " + value + ", data = " + data); + return data.label.indexOf(value) !== -1; + }, + // 鑺傜偣鍗曞嚮浜嬩欢 + handleNodeClick(data) { + this.queryParams.catalogId = data.id; + this.handleQuery(); + }, + + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + id: undefined, + content: undefined, + concurrent: 1, + status: "0" + }; + this.dateRange = [];// 鏃堕棿鑼冨洿 + this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.resetForm("queryForm"); + this.queryParams.orgId = this.selectedRootOrgId; + this.queryParams.questionType = undefined; + this.handleQuery(); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.id); + this.single = selection.length != 1; + this.multiple = !selection.length; + }, + // 鐘舵�佷慨鏀� + handleStatusChange(row) { + let text = row.status === "0" ? "鍚敤" : "鍋滅敤"; + this.$modal.confirm('纭瑕�"' + text + '""' + row.name + '"浠诲姟鍚楋紵').then(function() { + return changeJobStatus(row.id, row.status); + }).then(() => { + this.$modal.msgSuccess(text + "鎴愬姛"); + }).catch(function() { + row.status = row.status === "0" ? "1" : "0"; + }); + }, + /** 浠诲姟璇︾粏淇℃伅 */ + handleView(row) { + // getJob(row.id).then(response => { + // this.form = response.data; + // this.openView = true; + // }); + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + this.open = true; + this.title = "娣诲姞璇曢搴�"; + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset(); + const id = row.id || this.ids; + getJob(id).then(response => { + this.form = response.data; + this.open = true; + this.title = "淇敼璇曢搴�"; + }); + }, + /** 鎻愪氦鎸夐挳 */ + submitForm: function() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.id != undefined) { + updateJob(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.getList(); + }); + } else { + addJob(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const jobIds = row.id || this.ids; + this.$modal.confirm('鏄惁纭鍒犻櫎缂栧彿涓�"' + jobIds + '"鐨勬暟鎹」锛�').then(function() { + return delJob(jobIds); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => {}); + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download('monitor/job/export', { + ...this.queryParams + }, `job_${new Date().getTime()}.xlsx`) + } + } +}; +</script> -- Gitblit v1.9.1