From 033db2186f2fe5589b25ec55e41ddaa4f2f08108 Mon Sep 17 00:00:00 2001 From: wjt <1797368093@qq.com> Date: 星期二, 18 六月 2024 19:04:12 +0800 Subject: [PATCH] 完善 --- src/views/infomanger/companymanger/components/exportRecord.vue | 70 +++++- src/views/infomanger/companymanger/components/export.vue | 25 + src/utils/request.ts | 42 --- src/api/system/company/company.ts | 45 ++++ src/views/infomanger/companymanger/index.vue | 14 src/views/infomanger/policy/index.vue | 61 ++++- src/views/infomanger/policy/components/addNews.vue | 90 +++++++- src/components/FileUpload/handlerImport.vue | 215 +++++++++++++++++++++ 8 files changed, 467 insertions(+), 95 deletions(-) diff --git a/src/api/system/company/company.ts b/src/api/system/company/company.ts index b08d18d..8afdd6d 100644 --- a/src/api/system/company/company.ts +++ b/src/api/system/company/company.ts @@ -58,7 +58,7 @@ return request({ url: '/system/company/import', method: 'get', - }) + }) } // 瀵煎叆璁板綍 /system/company/export @@ -68,7 +68,6 @@ return request({ url: '/system/company/export', method: 'get', - responseType: 'blob' }) } // /system/doc/list 鎱т紒鏀跨瓥鍒楄〃 @@ -76,6 +75,46 @@ return request({ url: '/system/doc/list', method: 'get', - responseType: 'blob' + }) +} +// 鏂板浼佷笟淇℃伅 /system/doc/add +export function addDoc(data) { + return request({ + url: '/system/doc/add', + method: 'post', + data: data + }) +} +// 淇敼鏀跨瓥 /system/doc/upd +export function updDoc(data) { + return request({ + url: '/system/doc/upd', + method: 'post', + data: data + }) +} +// system/doc/ 鍒犻櫎鏀跨瓥 +export function delDoc(data) { + return request({ + url: `/system/doc/${data.delId}`, + method: 'DELETE', + data: data + }) +} +// 澶勭悊瀵煎叆淇℃伅 +export function doImport(data) { + return request({ + url: `/system/company/doImport`, + method: 'post', + data: data + }) +} +// 涓婁紶鏂囦欢淇℃伅/tool/file/upload + +export function uploadFile(data) { + return request({ + url: `/tool/file/upload`, + method: 'post', + data: data }) } \ No newline at end of file diff --git a/src/components/FileUpload/handlerImport.vue b/src/components/FileUpload/handlerImport.vue new file mode 100644 index 0000000..a47b3f2 --- /dev/null +++ b/src/components/FileUpload/handlerImport.vue @@ -0,0 +1,215 @@ +<template> + <div class="upload-file"> + <el-upload + multiple + :action="uploadFileUrl" + :before-upload="handleBeforeUpload" + :file-list="fileList" + :limit="limit" + :on-error="handleUploadError" + :on-exceed="handleExceed" + :on-success="handleUploadSuccess" + :show-file-list="false" + :headers="headers" + class="upload-file-uploader" + ref="fileUpload" + > + <!-- 涓婁紶鎸夐挳 --> + <el-button type="primary">閫夊彇鏂囦欢</el-button> + </el-upload> + <!-- 涓婁紶鎻愮ず --> + <div class="el-upload__tip" v-if="showTip"> + 璇蜂笂浼� + <!-- <template v-if="fileSize"> + 澶у皬涓嶈秴杩� <b style="color: #f56c6c">{{ fileSize }}MB</b> + </template> --> + <template v-if="fileType"> + 鏍煎紡涓� <b style="color: #f56c6c">{{ fileType.join("/") }}</b> + </template> + 鐨勬枃浠� + </div> + <!-- 鏂囦欢鍒楄〃 --> + <transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul"> + <li :key="file.uid" class="el-upload-list__item ele-upload-list__item-content" v-for="(file, index) in fileList"> + <el-link :href="`${baseUrl}${file.url}`" :underline="false" target="_blank"> + <span class="el-icon-document"> {{ getFileName(file.name) }} </span> + </el-link> + <div class="ele-upload-list__item-content-action"> + <el-link :underline="false" @click="handleDelete(index)" type="danger">鍒犻櫎</el-link> + </div> + </li> + </transition-group> + </div> +</template> + +<script setup> +import { getToken } from "@/utils/auth"; + +const props = defineProps({ + modelValue: [String, Object, Array], + // 鏁伴噺闄愬埗 + limit: { + type: Number, + default: 5, + }, + // 澶у皬闄愬埗(MB) + fileSize: { + type: Number, + default: 5, + }, + // 鏂囦欢绫诲瀷, 渚嬪['png', 'jpg', 'jpeg'] + fileType: { + type: Array, + default: () => ["doc", "xls", "ppt", "txt", "pdf"], + }, + // 鏄惁鏄剧ず鎻愮ず + isShowTip: { + type: Boolean, + default: true, + }, +}); + +const { proxy } = getCurrentInstance(); +const emit = defineEmits(); +const number = ref(0); +const uploadList = ref([]); +const baseUrl = import.meta.env.VITE_APP_BASE_API; +const uploadFileUrl = ref(import.meta.env.VITE_APP_BASE_API + "/system/company/doImport"); // 涓婁紶鏂囦欢鏈嶅姟鍣ㄥ湴鍧� +const headers = ref({ Authorization: "Bearer " + getToken() }); +const fileList = ref([]); +const showTip = computed(() => props.isShowTip && (props.fileType || props.fileSize)); + +watch( + () => props.modelValue, + (val) => { + if (val) { + let temp = 1; + // 棣栧厛灏嗗�艰浆涓烘暟缁� + const list = Array.isArray(val) ? val : props.modelValue.split(","); + // 鐒跺悗灏嗘暟缁勮浆涓哄璞℃暟缁� + fileList.value = list.map((item) => { + if (typeof item === "string") { + item = { name: item, url: item }; + } + item.uid = item.uid || new Date().getTime() + temp++; + return item; + }); + } else { + fileList.value = []; + return []; + } + }, + { deep: true, immediate: true } +); + +// 涓婁紶鍓嶆牎妫�鏍煎紡鍜屽ぇ灏� +function handleBeforeUpload(file) { + // 鏍℃鏂囦欢绫诲瀷 + if (props.fileType.length) { + const fileName = file.name.split("."); + const fileExt = fileName[fileName.length - 1]; + const isTypeOk = props.fileType.indexOf(fileExt) >= 0; + if (!isTypeOk) { + proxy.$modal.msgError(`鏂囦欢鏍煎紡涓嶆纭�, 璇蜂笂浼�${props.fileType.join("/")}鏍煎紡鏂囦欢!`); + return false; + } + } + // 鏍℃鏂囦欢澶у皬 + if (props.fileSize) { + const isLt = file.size / 1024 / 1024 < props.fileSize; + if (!isLt) { + proxy.$modal.msgError(`涓婁紶鏂囦欢澶у皬涓嶈兘瓒呰繃 ${props.fileSize} MB!`); + return false; + } + } + proxy.$modal.loading("姝e湪涓婁紶鏂囦欢锛岃绋嶅��..."); + number.value++; + return true; +} + +// 鏂囦欢涓暟瓒呭嚭 +function handleExceed() { + proxy.$modal.msgError(`涓婁紶鏂囦欢鏁伴噺涓嶈兘瓒呰繃 ${props.limit} 涓�!`); +} + +// 涓婁紶澶辫触 +function handleUploadError(err) { + proxy.$modal.msgError("涓婁紶鏂囦欢澶辫触"); +} + +// 涓婁紶鎴愬姛鍥炶皟 +function handleUploadSuccess(res, file) { + if (res.code === 200) { + uploadList.value.push({ name: res.fileName, url: res.fileName }); + uploadedSuccessfully(res.data.voList); + } else { + number.value--; + proxy.$modal.closeLoading(); + proxy.$modal.msgError(res.msg); + proxy.$refs.fileUpload.handleRemove(file); + uploadedSuccessfully(); + } +} + +// 鍒犻櫎鏂囦欢 +function handleDelete(index) { + fileList.value.splice(index, 1); + emit("update:modelValue", listToString(fileList.value)); +} + +// 涓婁紶缁撴潫澶勭悊 +function uploadedSuccessfully(item) { + if (number.value > 0 && uploadList.value.length === number.value) { + fileList.value = fileList.value.filter((f) => f.url !== undefined).concat(uploadList.value); + uploadList.value = []; + number.value = 0; + emit("update:modelValue", listToString(fileList.value)); + proxy.$modal.closeLoading(); + if(item) { + emit('resList', item) + } + } +} + +// 鑾峰彇鏂囦欢鍚嶇О +function getFileName(name) { + if (name.lastIndexOf("/") > -1) { + return name.slice(name.lastIndexOf("/") + 1); + } else { + return ""; + } +} + +// 瀵硅薄杞垚鎸囧畾瀛楃涓插垎闅� +function listToString(list, separator) { + let strs = ""; + separator = separator || ","; + for (let i in list) { + if (list[i].url) { + strs += list[i].url + separator; + } + } + return strs != "" ? strs.substr(0, strs.length - 1) : ""; +} +</script> + +<style scoped lang="scss"> +.upload-file-uploader { + margin-bottom: 5px; +} +.upload-file-list .el-upload-list__item { + border: 1px solid #e4e7ed; + line-height: 2; + margin-bottom: 10px; + position: relative; +} +.upload-file-list .ele-upload-list__item-content { + display: flex; + justify-content: space-between; + align-items: center; + color: inherit; +} +.ele-upload-list__item-content-action .el-link { + margin-right: 10px; +} +</style> diff --git a/src/utils/request.ts b/src/utils/request.ts index 932820b..b939337 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -136,7 +136,10 @@ export function download(url: string, params: any, filename: string, config: any) { downloadLoadingInstance = ElLoading.service({ text: "姝e湪涓嬭浇鏁版嵁锛岃绋嶅��", background: "rgba(0, 0, 0, 0.7)" }); return service - .post(url, params, { + .get(url, { + params, + responseType: "blob", + }, { transformRequest: [ (params) => { return tansParams(params); @@ -165,42 +168,7 @@ downloadLoadingInstance.close(); }); } -// 閫氱敤涓嬭浇鏂规硶 -export function downloadGet(url: string, params: any, filename: string, config: any, isSaveFile = false) { - downloadLoadingInstance = ElLoading.service({ text: "姝e湪涓嬭浇鏁版嵁锛岃绋嶅��", background: "rgba(0, 0, 0, 0.7)" }); - return service - .get(url, { params }, { - transformRequest: [ - (params) => { - return tansParams(params); - }, - ], - headers: { "Content-Type": "application/x-www-form-urlencoded" }, - responseType: "blob", - ...config, - }) - .then(async (data) => { - const isBlob = blobValidate(data); - if (isBlob && isSaveFile) { - const blob = new Blob([data]); - saveAs(blob, filename); - } else { - if(!isSaveFile) { - } else { - const resText = await data.text(); - const rspObj = JSON.parse(resText); - const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode["default"]; - ElMessage.error(errMsg); - } - } - downloadLoadingInstance.close(); - }) - .catch((r) => { - console.error(r); - ElMessage.error("涓嬭浇鏂囦欢鍑虹幇閿欒锛岃鑱旂郴绠$悊鍛橈紒"); - downloadLoadingInstance.close(); - }); -} + const request = <T = any>(_config: AxiosRequestConfig<any>): Promise<T> => { return service(_config) as Promise<T>; }; diff --git a/src/views/infomanger/companymanger/components/export.vue b/src/views/infomanger/companymanger/components/export.vue index b1c979b..84936ee 100644 --- a/src/views/infomanger/companymanger/components/export.vue +++ b/src/views/infomanger/companymanger/components/export.vue @@ -1,28 +1,31 @@ <template> - <el-dialog title="鐢ㄦ埛瀵煎叆" v-model="dialogVisible" width="600px" append-to-body @close="closeDialog" + <el-dialog title="鐢ㄦ埛瀵煎叆" v-model="dialogVisible" width="900px" append-to-body @close="cloaseDialog" > <el-form label-width="80px"> <el-form-item label="涓嬭浇妯℃澘"> <el-link type="primary" @click="downLoad">浼佷笟淇℃伅瀵煎叆妯℃澘.xlsx</el-link> </el-form-item> <el-form-item label="閫夊彇鏂囦欢"> - <FileUpload :limit="1" :fileType="['cvs', 'xlsx']" v-model="form.exportNews.file"></FileUpload> - </el-form-item> - <el-form-item> - <el-button type="primary" plain @click="startExport">寮�濮嬪鍏�</el-button> + <FileUpload :limit="1" :fileType="['cvs', 'xlsx']" v-model="form.exportNews.file" @resList="resList"></FileUpload> </el-form-item> </el-form> + <template #footer> + <div style="text-align: center;"> + <el-button @click="cloaseDialog" >鍏抽棴</el-button> + </div> + </template> </el-dialog> </template> <script lang="ts" setup> import { ref } from 'vue' import { ElMessageBox } from 'element-plus' -import FileUpload from '@/components/FileUpload/index' -import { downloadGet as downloadHttp} from '@/utils/request' -import { downTemplate, importTemplate } from '@/api/system/company/company' +import FileUpload from '@/components/FileUpload/handlerImport.vue' +import { download as downloadHttp} from '@/utils/request' +import { downTemplate, importTemplate, doImport } from '@/api/system/company/company' const { proxy } = getCurrentInstance(); const dialogVisible = ref(false) +const emit = defineEmits() const form = reactive({ exportNews: {} }) @@ -42,7 +45,11 @@ }) } function startExport() { - + uploadFile() +} +function resList(row) { + cloaseDialog() + emit('resList', row) } defineExpose({ openDialog, diff --git a/src/views/infomanger/companymanger/components/exportRecord.vue b/src/views/infomanger/companymanger/components/exportRecord.vue index bc4196d..9be907c 100644 --- a/src/views/infomanger/companymanger/components/exportRecord.vue +++ b/src/views/infomanger/companymanger/components/exportRecord.vue @@ -1,32 +1,70 @@ <template> <el-dialog title="瀵煎叆璁板綍" v-model="dialogVisible" width="1200px" append-to-body @close="closeDialog" > - <el-table> - <el-table-column label="搴忓彿"></el-table-column> - <el-table-column label="瀵煎叆鏂囦欢"></el-table-column> - <el-table-column label="瀵煎叆浜�"></el-table-column> - <el-table-column label="瀵煎叆鏃堕棿"></el-table-column> - <el-table-column label="杩涘害"></el-table-column> - <el-table-column label="瀵煎叆缁撴灉"></el-table-column> - <el-table-column label="瀵煎叆缁撴灉鏂囦欢"></el-table-column> + <el-table :data="recordValue" border> + <el-table-column label="浼佷笟鍚�(浼佷笟鍏ㄧО)" prop="companyName"> + <template #default="scope"> + <el-input v-model="scope.row.companyName"></el-input> + </template> + </el-table-column> + <el-table-column label="缁熶竴绀句細淇$敤浠g爜" prop="companyCode"> + <template #default="scope"> + <el-input v-model="scope.row.companyCode"></el-input> + </template> + </el-table-column> + <el-table-column label="浼佷笟鑱旂郴浜�" prop="companyUser"> + <template #default="scope"> + <el-input v-model="scope.row.companyUser"></el-input> + </template> + </el-table-column> + <el-table-column label="鑱旂郴浜虹數璇�" prop="companyPhone"> + <template #default="scope"> + <el-input v-model="scope.row.companyPhone"></el-input> + </template> + </el-table-column> + <el-table-column label="浼佷笟鍦板潃" prop="companyAddress"> + <template #default="scope"> + <el-input v-model="scope.row.companyAddress"></el-input> + </template> + </el-table-column> + <el-table-column label="澶囨敞" prop="mark"> + <template #default="scope"> + <el-input v-model="scope.row.mark"></el-input> + </template> + </el-table-column> </el-table> + <template #footer> + <div class="dialog-footer"> + <el-button @click="closeDialog">鍙� 娑�</el-button> + <el-button type="primary" @click="addCompany">纭� 瀹�</el-button> + </div> + </template> </el-dialog> </template> <script setup lang="ts"> -import { importTemplateRecord } from '@/api/system/company/company' const dialogVisible = ref(false) -const closeDialog = () => { - dialogVisible.value = false -} -const openDialog = () => { +const props = defineProps({ + recordRow: { type: Array, default: () => [] }, +}) +const recordValue = ref([]) +watch(() => props.recordRow, (newValue) => { + // console.log(props.recordRow) + recordValue.value = newValue +}) +function openDialog() { dialogVisible.value = true } -function importTemplateRecord() { - console.log('鑾峰彇瀵煎叆璁板綍') +function closeDialog() { + dialogVisible.value = false } defineExpose({ openDialog, closeDialog }) -</script> \ No newline at end of file +</script> +<style> +.dialog-footer{ + text-align: center; +} +</style> \ No newline at end of file diff --git a/src/views/infomanger/companymanger/index.vue b/src/views/infomanger/companymanger/index.vue index 97b7cf0..4e0664b 100644 --- a/src/views/infomanger/companymanger/index.vue +++ b/src/views/infomanger/companymanger/index.vue @@ -41,9 +41,9 @@ <el-col :span="1.5"> <el-button type="primary" plain icon="Plus" @click="exportExcel" v-hasPermi="['system:dept:add']">瀵煎叆</el-button> </el-col> - <el-col :span="1.5"> + <!-- <el-col :span="1.5"> <el-button type="primary" plain icon="Plus" @click="exportRecordComOpen" v-hasPermi="['system:dept:add']">瀵煎叆璁板綍</el-button> - </el-col> + </el-col> --> <!-- <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> --> </el-row> @@ -127,8 +127,8 @@ </div> </template> </el-dialog> - <exportExcelCom ref="exporttem"></exportExcelCom> - <exportRecord ref="exportRecordCom"></exportRecord> + <exportExcelCom ref="exporttem" @resList="resList"></exportExcelCom> + <exportRecord ref="exportRecordCom" :recordRow="recordRow"></exportRecord> </div> </template> @@ -223,7 +223,7 @@ // const dispDeptType = computed(() => (e) => { // return dept_type.value.find((f) => f.value == e).label; // }); - +const recordRow = ref([]) /** 鏌ヨ浼佷笟鍒楄〃 */ function getList() { loading.value = true; @@ -326,5 +326,9 @@ function exportRecordComOpen() { exportRecordCom.value.openDialog() } +function resList(row) { + recordRow.value = row + exportRecordCom.value.openDialog() +} getList(); </script> diff --git a/src/views/infomanger/policy/components/addNews.vue b/src/views/infomanger/policy/components/addNews.vue index d929589..64072e9 100644 --- a/src/views/infomanger/policy/components/addNews.vue +++ b/src/views/infomanger/policy/components/addNews.vue @@ -1,32 +1,72 @@ <!-- 鏂板鏀跨瓥 --> <template> - <el-dialog title="鐢ㄦ埛瀵煎叆" v-model="dialogVisible" width="600px" append-to-body @close="closeDialog"> - <el-form> - <el-form-item> - <el-select> - <el-option></el-option> + <el-dialog title="鎯犱紒鏀跨瓥" v-model="dialogVisible" width="900px" append-to-body @close="closeDialog"> + <div style="padding: 0 20px;"> + <el-form :mode="form" :rules="rules"> + <el-form-item label="鏀跨瓥绫诲瀷" prop="docType"> + <el-select v-model="form.docType" placeholder="璇烽�夋嫨" style="width: 200px"> + <el-option v-for="(item,index) in policyList" :label="item.label" :value="item.value"></el-option> </el-select> </el-form-item> - <el-form-item> - <el-input></el-input> + <el-form-item label="鏀跨瓥鍚嶇О" prop="docName"> + <el-input v-model="form.docTitle" placeholder="璇疯緭鍏ユ斂绛栧悕绉�"></el-input> </el-form-item> - <el-form-item> - <div>鍐呭</div> + <el-form-item label="鏀跨瓥鍐呭" prop="docContent"> + <div><editPolicy v-model="form.docContent"></editPolicy></div> </el-form-item> - <el-form-item label="鐘舵��" prop="docStatus"> - <el-switch v-model="form.docStatus"></el-switch> + <el-form-item label="鐘舵��" > + <el-switch v-model="form.docStatus" :active-value="0" :inactive-value="1"></el-switch> </el-form-item> </el-form> + </div> + <template v-slot:footer> + <el-button type="primary" @click="addDoc">纭</el-button> + <el-button @click="closeDialog">鍙栨秷</el-button> + </template> </el-dialog> </template> <script> +import editPolicy from '@/components/Editor/index' +import { addDoc, updDoc } from '@/api/system/company/company' export default { + components: { + editPolicy + }, + props: { + policyList: { + type: Array, + default: () => { + return [] + } + } + }, data() { return { dialogVisible: false, form: { - + docStatus: 0 + }, + rules: { + docType:[{ + required: true, + message: '璇疯緭鍏ユ斂绛栧悕绉�', + trigger: 'blur' + }], + docName: [ + { + required: true, + message: '璇疯緭鍏ユ斂绛栧悕绉�', + trigger: 'blur' + } + ], + docContent: [ + { + required: true, + message: '璇疯緭鍏ユ斂绛栧唴瀹�', + trigger: 'blur' + } + ] } } }, @@ -34,8 +74,32 @@ closeDialog() { this.dialogVisible = false }, - openDialog() { + openDialog(row) { + if(row) { + this.form = row + this.form.docContent = decodeURIComponent(row.docContent) + } else { + this.form = { + docStatus: 0 + } + } this.dialogVisible = true + }, + addDoc() { + this.form.docContent = encodeURIComponent(this.form.docContent) + if(this.form.docId) { + updDoc(this.form).then(val => { + this.$message.success('娣诲姞鎴愬姛') + this.closeDialog() + this.$emit('upload') + }) + } else { + addDoc(this.form).then(val => { + this.$message.success('娣诲姞鎴愬姛') + this.closeDialog() + this.$emit('upload') + }) + } } } } diff --git a/src/views/infomanger/policy/index.vue b/src/views/infomanger/policy/index.vue index fbcb569..c147859 100644 --- a/src/views/infomanger/policy/index.vue +++ b/src/views/infomanger/policy/index.vue @@ -24,22 +24,33 @@ <el-button type="primary" plain icon="Plus" @click="handleAdd()" v-hasPermi="['system:dept:add']">鏂板</el-button> </el-col> </el-row> - <el-table :data="deptList"> - <el-table-column label="鏀跨瓥鍚嶇О"></el-table-column> - <el-table-column label="鏀跨瓥绫诲瀷"></el-table-column> - <el-table-column label="鍒涘缓鏃堕棿"></el-table-column> + <el-table :data="tableData" v-loading="loading" border> + <el-table-column label="鏀跨瓥鍚嶇О" prop="docTitle"></el-table-column> + <el-table-column label="鏀跨瓥绫诲瀷" prop="docType"></el-table-column> + <el-table-column label="鍒涘缓鏃堕棿" ></el-table-column> <el-table-column label="鍒涘缓浜�" width="200"></el-table-column> - <el-table-column label="鐘舵��" width="200"></el-table-column> - <el-table-column label="鎿嶄綔"></el-table-column> + <el-table-column label="鐘舵��" width="200" prop="docStatus"> + <template #default="scope"> + <el-switch v-if="scope.row.docId" v-model="scope.row.docStatus" :active-value="0" :inactive-value="1" @change="changeStatus(scope.row)"></el-switch> + </template> + </el-table-column> + <el-table-column label="鎿嶄綔"> + <template #default="scope"> + <el-link type="primary" @click="handleAdd(scope.row)">缂栬緫</el-link> + <el-divider direction="vertical" /> + <el-link type="primary" @click="delData(scope.row)">鍒犻櫎</el-link> + </template> + </el-table-column> </el-table> <pagination v-show="queryParams.total > 0" :total="queryParams.total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" /> - <addNews ref="addnews"></addNews> + <addNews ref="addnews" :policyList="policyList" @upload="getList"></addNews> </div> </template> <script> -import { docList } from '@/api/system/company/company' +import { docList,updDoc, delDoc } from '@/api/system/company/company' import addNews from './components/addNews' +import { ElMessageBox } from 'element-plus' export default { components: { addNews @@ -67,10 +78,12 @@ pageNum: 1, pageSize: 10 }, - tableData: [] + tableData: [], + loading: false } }, - mounted() { + created() { + this.loading = true this.getList() }, methods: { @@ -79,6 +92,7 @@ docList(this.queryParams).then(res => { this.tableData = res.rows this.queryParams.total = res.total + this.loading = false }) }, // 鎼滅储 @@ -86,8 +100,31 @@ this.queryParams.pageNum = 1 this.getList() }, - handleAdd() { - this.$refs.addnews.openDialog() + handleAdd(row) { + this.$refs.addnews.openDialog(row) + }, + changeStatus(row) { + if(this.loading){ + return + } + updDoc(row).then(val => { + this.$message.success('淇敼鎴愬姛') + this.getList() + }) + }, + delData(row) { + ElMessageBox({ + type: 'warning', + message: '纭鍒犻櫎璇ユ斂绛栵紵', + title: '鎻愮ず', + cancelButtonText: '鍙栨秷', + + }).then(val => { + delDoc({delId: row.docId}).then(val => { + this.$message.success('鍒犻櫎鎴愬姛') + this.getList() + }) + }) } } } -- Gitblit v1.9.1