From 459060ff2ae132388225c370c10dcc2126e70552 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期一, 24 二月 2025 20:16:12 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- src/api/cnas/resourceDemand/standardMaterailRequistion/standardMaterailRequistion.js | 12 src/views/CNAS/resourceDemand/standardMaterailRequistion/index.vue | 146 +++++++++++ src/views/CNAS/resourceDemand/standardMaterialAccept/component/AddRecord.vue | 103 +++++++ src/api/cnas/resourceDemand/standardMaterial/standardMaterial.js | 2 src/views/CNAS/resourceDemand/standardMaterial/index.vue | 4 src/views/CNAS/resourceDemand/standardMaterialAccept/index.vue | 230 +++++++++++++++++ src/views/CNAS/resourceDemand/standardMaterialAccept/component/Step1.vue | 201 +++++++++++++++ src/api/cnas/resourceDemand/standardMaterialAccept/standardMaterialAccept.js | 31 ++ 8 files changed, 726 insertions(+), 3 deletions(-) diff --git a/src/api/cnas/resourceDemand/standardMaterailRequistion/standardMaterailRequistion.js b/src/api/cnas/resourceDemand/standardMaterailRequistion/standardMaterailRequistion.js new file mode 100644 index 0000000..0353e42 --- /dev/null +++ b/src/api/cnas/resourceDemand/standardMaterailRequistion/standardMaterailRequistion.js @@ -0,0 +1,12 @@ +import request from '@/utils/request' + +// 鍒嗛〉鏌ヨ +export function getPageSubstanceRecord(query) { + return request({ + url: '/feStandardSubstanceRecord/getPageSubstanceRecord', + method: 'get', + params: query + }) +} + + diff --git a/src/api/cnas/resourceDemand/standardMaterial/standardMaterial.js b/src/api/cnas/resourceDemand/standardMaterial/standardMaterial.js index 0b2dd67..71f88a9 100644 --- a/src/api/cnas/resourceDemand/standardMaterial/standardMaterial.js +++ b/src/api/cnas/resourceDemand/standardMaterial/standardMaterial.js @@ -32,7 +32,7 @@ return request({ url: "/feStandardSubstance/exportOfStandardSubstanceList", method: "get", - headers: { responseType: "blob" }, + responseType: "blob", params: query, }); } diff --git a/src/api/cnas/resourceDemand/standardMaterialAccept/standardMaterialAccept.js b/src/api/cnas/resourceDemand/standardMaterialAccept/standardMaterialAccept.js new file mode 100644 index 0000000..707631a --- /dev/null +++ b/src/api/cnas/resourceDemand/standardMaterialAccept/standardMaterialAccept.js @@ -0,0 +1,31 @@ +import request from '@/utils/request' + +export function getPageAcceptance(query) { + return request({ + url: '/feStandardSubstanceAcceptance/getPageAcceptance', + method: 'get', + params: query + }) +} + +export function updateAcceptanc(query) { + return request({ + url: '/feStandardSubstanceAcceptance/updateAcceptanc', + method: 'post', + data: query + }) +} + +export function addAcceptance(query) { + return request({ + url: '/feStandardSubstanceAcceptance/addAcceptance', + method: 'post', + data: query + }) +} + + + + + + diff --git a/src/views/CNAS/resourceDemand/standardMaterailRequistion/index.vue b/src/views/CNAS/resourceDemand/standardMaterailRequistion/index.vue new file mode 100644 index 0000000..9d91405 --- /dev/null +++ b/src/views/CNAS/resourceDemand/standardMaterailRequistion/index.vue @@ -0,0 +1,146 @@ +<template> + <div class="capacity-scope"> + <div class="search"> + <div> + <el-form :model="searchForm" ref="searchForm" size="small" :inline="true"> + <el-form-item label="鏍囧噯鐗╄川鍚嶇О" prop="name"> + <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="searchForm.name" + @keyup.enter.native="searchList"></el-input> + </el-form-item> + <el-form-item label="瑙勬牸鍨嬪彿" prop="factoryManufacturer"> + <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="searchForm.model" + @keyup.enter.native="searchList"></el-input> + </el-form-item> + <el-form-item> + <el-button size="medium" @click="resetSearchForm">閲� 缃�</el-button> + <el-button size="medium" type="primary" @click="searchList">鏌� 璇�</el-button> + </el-form-item> + </el-form> + </div> + </div> + <div class="table"> + <lims-table :tableData="tableData" :column="tableColumn" :height="'calc(100vh - 250px)'" @pagination="pagination" + :page="page" :tableLoading="tableLoading"></lims-table> + </div> + </div> +</template> + +<script> +import limsTable from '@/components/Table/lims-table.vue' +import { + getPageSubstanceRecord +} from '@/api/cnas/resourceDemand/standardMaterailRequistion/standardMaterailRequistion' + +export default { + components: { + limsTable + // TableCard, + // ZTTable, + }, + data() { + return { + searchForm: { + name: '', + factoryManufacturer: '', + }, + tableColumn: [ + { + label: '鏍囧噯鐗╄川鍚嶇О', + prop: 'name', + minWidth: '120' + }, + { + label: '瑙勬牸鍨嬪彿', + prop: 'model', + minWidth: '100' + }, + { + label: '鍑哄巶缂栧彿', + prop: 'factoryNum', + minWidth: '100' + }, + { + label: '鏁伴噺', + prop: 'factoryNum', + minWidth: '100' + }, + { + label: '棰嗙敤浜�', + prop: 'borrowUser', + minWidth: '100' + }, + { + label: '棰嗙敤鏃ユ湡', + prop: 'borrowDate', + minWidth: '100' + }, + { + label: '褰掕繕浜�', + prop: 'returnIntegrity', + minWidth: '100' + }, + { + label: '褰掕繕鏃ユ湡', + prop: 'returnDate', + minWidth: '100' + }, + { + label: '褰掕繕鏃剁姸鎬�', + prop: 'returnIntegrity', + minWidth: '100' + } + ], + tableData: [], + tableLoading: false, + page: { + total: 0, + size: 10, + current: 1 + }, + total: 0, + formDia: false, + borrowDia: false, + returnDia: false, + } + }, + mounted() { + this.searchList() + }, + methods :{ + // 鏌ヨ鍒楄〃 + searchList () { + this.tableLoading = true + getPageSubstanceRecord({ + ...this.page, + ...this.searchForm + }).then(res => { + this.tableLoading = false + if (res.code === 200){ + this.tableData = res.data.records + this.page.total = res.data.total + } + }).catch(err => { + this.tableLoading = false + }) + }, + // 閲嶇疆鏌ヨ鏉′欢 + resetSearchForm () { + this.searchForm.name = ''; + this.searchForm.model = ''; + this.searchList() + }, + // 鍒嗛〉鍒囨崲 + pagination(page) { + this.page.size = page.limit + this.searchList(); + }, + } +} +</script> +<style scoped> +.search { + height: 46px; + display: flex; + justify-content: space-between; +} +</style> diff --git a/src/views/CNAS/resourceDemand/standardMaterial/index.vue b/src/views/CNAS/resourceDemand/standardMaterial/index.vue index 085b14e..6483368 100644 --- a/src/views/CNAS/resourceDemand/standardMaterial/index.vue +++ b/src/views/CNAS/resourceDemand/standardMaterial/index.vue @@ -5,11 +5,11 @@ <el-form :model="searchForm" ref="searchForm" size="small" :inline="true"> <el-form-item label="鏍囧噯鐗╄川鍚嶇О" prop="name"> <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="searchForm.name" - @keyup.enter.native="refreshTable"></el-input> + @keyup.enter.native="searchList"></el-input> </el-form-item> <el-form-item label="鐢熶骇鍘傚" prop="factoryManufacturer"> <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="searchForm.factoryManufacturer" - @keyup.enter.native="refreshTable"></el-input> + @keyup.enter.native="searchList"></el-input> </el-form-item> <el-form-item> <el-button type="primary" icon="el-icon-search" size="mini" @click="searchList">鏌� 璇�</el-button> diff --git a/src/views/CNAS/resourceDemand/standardMaterialAccept/component/AddRecord.vue b/src/views/CNAS/resourceDemand/standardMaterialAccept/component/AddRecord.vue new file mode 100644 index 0000000..1e54f5e --- /dev/null +++ b/src/views/CNAS/resourceDemand/standardMaterialAccept/component/AddRecord.vue @@ -0,0 +1,103 @@ +<template> + <el-dialog :visible.sync="dialogVisible" title="鏍囧噯鐗╄川楠屾敹璁板綍" width="70%"> + <!-- <el-steps :active="currentStep" finish-status="success"> + <el-step class="cursor-pointer" v-for="(item, index) in steps" :key="index" :title="item"> + </el-step> + </el-steps> --> +<!-- <el-form :model="model" label-width="140px" size="small">--> +<!-- <Step1 :model.sync="model"></Step1>--> +<!-- </el-form>--> + <span slot="footer" class="dialog-footer"> + <el-button @click="dialogVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="submit">淇� 瀛�</el-button> + </span> + </el-dialog> +</template> + +<script> +// import Step1 from './Step/Step1.vue' +export default { + components: { + // Step1 + }, + data() { + return { + dialogVisible: false, + currentStep: 0, // 姝ラ鏉℃樉绀虹鍑犳 + // steps: ['鎻愪氦', '寮�绠遍獙鏀跺鏍�', '瀹夎楠屾敹妫�鏌�', '瀹夎楠屾敹澶嶆牳', '楠屾敹鏍告煡', '楠屾敹鏍告煡瀹℃牳'], + model: { + acceptance: { + id: undefined, + producer: undefined, // 鍘傚浠h〃 + file: undefined, // 鐩稿叧闄勪欢 + recipient: undefined, // 鎺ユ敹浜� + signature: undefined, // 鎺ュ彈绛惧瓧 + situation: undefined, // 楠屾敹鎯呭喌 + installation: undefined, // 瀹夎璋冭瘯鎯呭喌 + substanceId: undefined, // 娓呭崟 + arriveDate: undefined, // 鍒拌揣鏃ユ湡 + maintenanceUnit: undefined, // 缁翠慨鍗曚綅 + }, + list: [] + } + } + }, + watch: { + model(newVal) { + this.model = newVal + } + }, + methods: { + clearForm() { + this.model.acceptance.id = undefined + this.model.acceptance.producer = undefined + this.model.acceptance.file = undefined + this.model.acceptance.recipient = undefined + this.model.acceptance.signature = undefined + this.model.acceptance.situation = undefined + this.model.acceptance.installation = undefined + this.model.acceptance.substanceId = undefined + this.model.acceptance.arriveDate = undefined + this.model.acceptance.maintenanceUnit = undefined + this.model.list = [] + }, + openDialog(form) { + console.log(form) + if(form) { + this.model.acceptance.id = form.acceptance.id + this.model.acceptance.producer = form.acceptance.producer + this.model.acceptance.file = form.acceptance.file + this.model.acceptance.recipient = form.acceptance.recipient + this.model.acceptance.signature = form.acceptance.signature + this.model.acceptance.situation = form.acceptance.situation + this.model.acceptance.installation = form.acceptance.installation + this.model.acceptance.substanceId = form.acceptance.substanceId + this.model.acceptance.arriveDate = form.acceptance.arriveDate + this.model.acceptance.maintenanceUnit = form.acceptance.maintenanceUnit + this.model.list = form.list + } else { + this.clearForm() + } + this.dialogVisible = true + }, + closeDialog() { + this.dialogVisible = false + }, + submit() { + if (!this.model.acceptance.substanceId) { + this.$message.warning('璇烽�夋嫨娓呭崟') + return + } + this.$emit('submit', this.model) + this.closeDialog() + } + } +} + +</script> + +<style scoped> +.cursor-pointer { + cursor: pointer; +} +</style> diff --git a/src/views/CNAS/resourceDemand/standardMaterialAccept/component/Step1.vue b/src/views/CNAS/resourceDemand/standardMaterialAccept/component/Step1.vue new file mode 100644 index 0000000..c1f26ad --- /dev/null +++ b/src/views/CNAS/resourceDemand/standardMaterialAccept/component/Step1.vue @@ -0,0 +1,201 @@ +<!--<template>--> +<!-- <el-card class="card">--> +<!-- <el-col :span="12">--> +<!-- <el-form-item label="鍘傚浠h〃">--> +<!-- <el-input v-model="model.acceptance.producer"></el-input>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- <el-col :span="12">--> +<!-- <el-form-item label="鐩稿叧闄勪欢">--> +<!-- <div class="table-between">--> +<!-- <el-input v-model="model.acceptance.file" style="width: 82%;"></el-input>--> +<!-- <el-upload--> +<!-- ref="upload"--> +<!-- style="float: left; margin: 0 12px 0 20px;"--> +<!-- :action="action"--> +<!-- :show-file-list="false"--> +<!-- :on-success="onSuccess"--> +<!-- >--> +<!-- <el-button type="primary">--> +<!-- 闄勪欢涓婁紶--> +<!-- </el-button>--> +<!-- </el-upload>--> +<!-- </div>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- <el-col :span="12">--> +<!-- <el-form-item label="鎺ユ敹浜�">--> +<!-- <el-input v-model="model.acceptance.recipient"></el-input>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- <el-col :span="12">--> +<!-- <el-form-item label="鎺ュ彈绛惧瓧">--> +<!-- <el-input v-model="model.acceptance.signature"></el-input>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- <el-col :span="12">--> +<!-- <el-form-item label="楠屾敹鎯呭喌">--> +<!-- <el-input v-model="model.acceptance.situation"></el-input>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- <el-col :span="12">--> +<!-- <el-form-item label="瀹夎璋冭瘯鎯呭喌">--> +<!-- <el-input v-model="model.acceptance.installation"></el-input>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- <el-col :span="12">--> +<!-- <el-form-item label="娓呭崟" prop="substanceId" required>--> +<!-- <el-select v-model="model.acceptance.substanceId" placeholder="璇烽�夋嫨" style="width: 100%">--> +<!-- <el-option--> +<!-- v-for="item in options"--> +<!-- :key="item.value"--> +<!-- :label="item.name"--> +<!-- :value="item.id">--> +<!-- </el-option>--> +<!-- </el-select>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- <el-col :span="12">--> +<!-- <el-form-item label="鍒拌揣鏃ユ湡">--> +<!-- <el-date-picker--> +<!-- v-model="model.acceptance.arriveDate"--> +<!-- align="right"--> +<!-- type="date"--> +<!-- placeholder="閫夋嫨鏃ユ湡"--> +<!-- style="width: 100%"--> +<!-- value-format="yyyy-MM-dd"--> +<!-- >--> +<!-- </el-date-picker>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- <el-col :span="12">--> +<!-- <el-form-item label="缁翠慨鍗曚綅">--> +<!-- <el-input v-model="model.acceptance.maintenanceUnit"></el-input>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- <el-col :span="24">--> +<!-- <el-form-item label="澶囦欢纭">--> +<!-- <el-button type="primary" style="float: right;" @click="addSpareTable">澧炲姞琛�</el-button>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- <el-col :span="24">--> +<!-- <el-form-item>--> +<!-- <ZTTable--> +<!-- style="margin-bottom: 20px;"--> +<!-- :column="spareColumns"--> +<!-- :table-data="model.list"--> +<!-- >--> +<!-- <template slot="name" slot-scope="{ row, index }">--> +<!-- <el-input v-if="row.isEdit" size="small" v-model="row.name"></el-input>--> +<!-- <span v-else>{{ row.name }}</span>--> +<!-- </template>--> +<!-- <template slot="number" slot-scope="{ row, index }">--> +<!-- <el-input v-if="row.isEdit" size="small" v-model="row.number"></el-input>--> +<!-- <span v-else>{{ row.number }}</span>--> +<!-- </template>--> +<!-- <template slot="action" slot-scope="{ row, index }">--> +<!-- <div v-if="row.isEdit">--> +<!-- <el-button type="text" @click="save(index)">淇濆瓨</el-button>--> +<!-- <el-button type="text">鍙栨秷</el-button>--> +<!-- </div>--> +<!-- <div v-else>--> +<!-- <el-button type="text" @click="edit(index)">淇敼</el-button>--> +<!-- </div>--> +<!-- </template>--> +<!-- </ZTTable>--> +<!-- </el-form-item>--> +<!-- </el-col>--> +<!-- </el-card>--> +<!--</template>--> + +<!--<script>--> +<!--import ZTTable from '@/components/caorui/ZTTable/index.vue';--> +<!--import { getStandardSubstanceAll } from "@/assets/api/api";--> +<!--import axios from 'axios';--> + +<!--export default {--> +<!-- components: {--> +<!-- ZTTable--> +<!-- },--> +<!-- props: {--> +<!-- model: {--> +<!-- type: Object,--> +<!-- default: () => {}--> +<!-- }--> +<!-- },--> +<!-- data() {--> +<!-- return {--> +<!-- spareColumns: [--> +<!-- {--> +<!-- label: "鍚嶇О",--> +<!-- prop: "name",--> +<!-- align: "center",--> +<!-- dataType: "slot",--> +<!-- slot: "name",--> +<!-- }, {--> +<!-- label: "鏁伴噺",--> +<!-- prop: "number",--> +<!-- align: "center",--> +<!-- dataType: "slot",--> +<!-- slot: "number",--> +<!-- }, {--> +<!-- label: "鎿嶄綔",--> +<!-- align: "center",--> +<!-- dataType: "slot",--> +<!-- slot: "action",--> +<!-- width: 150--> +<!-- }--> +<!-- ],--> +<!-- options: []--> +<!-- }--> +<!-- },--> +<!-- computed: {--> +<!-- action() {--> +<!-- return `${this.javaApi}/${this.$api.personnel.saveCNASFile}`--> +<!-- }--> +<!-- },--> +<!-- mounted() {--> +<!-- this.getStand()--> +<!-- },--> +<!-- methods: {--> +<!-- async getStand() {--> +<!-- const { code, data } = await axios({--> +<!-- url: getStandardSubstanceAll,--> +<!-- method: 'get'--> +<!-- })--> +<!-- this.options = data--> +<!-- },--> +<!-- addSpareTable() {--> +<!-- this.model.list.push({--> +<!-- acceptanceId: this.model.acceptance.id,--> +<!-- name: '',--> +<!-- number: '',--> +<!-- isEdit: true--> +<!-- })--> +<!-- },--> +<!-- onSuccess(response) {--> +<!-- this.model.acceptance.file = response.data--> +<!-- this.$emit('update:model', this.model)--> +<!-- },--> +<!-- save(index) {--> +<!-- this.model.list[index].isEdit = false--> +<!-- this.$emit('update:model', this.model)--> +<!-- },--> +<!-- edit(index) {--> +<!-- this.model.list[index].isEdit = true--> +<!-- }--> +<!-- }--> +<!--}--> +<!--</script>--> + +<!--<style scoped>--> +<!--.card {--> +<!-- margin-top: 1em;--> +<!-- height: 56vh;--> +<!-- overflow-y: scroll;--> +<!--}--> +<!--.table-between {--> +<!-- display: flex;--> +<!-- justify-content: space-between;--> +<!--}--> +<!--</style>--> diff --git a/src/views/CNAS/resourceDemand/standardMaterialAccept/index.vue b/src/views/CNAS/resourceDemand/standardMaterialAccept/index.vue new file mode 100644 index 0000000..b6bb91f --- /dev/null +++ b/src/views/CNAS/resourceDemand/standardMaterialAccept/index.vue @@ -0,0 +1,230 @@ +<template> + <div class="capacity-scope"> + <div class="search"> + <div> + <el-form :model="form" ref="form" size="small" :inline="true"> + <el-form-item label="鐗╄川鍚嶇О"> + <el-input v-model="form.search"></el-input> + </el-form-item> + <el-form-item> + <el-button @click="reset">閲� 缃�</el-button> + <el-button type="primary" @click="getTableData">鏌� 璇�</el-button> + </el-form-item> + </el-form> + </div> + <div> + <el-button icon="el-icon-plus" size="small" type="primary" @click="openDialog">娣诲姞楠屾敹</el-button> + <el-button size="small" type="primary" @click="exportExcel">瀵煎嚭</el-button> + </div> + </div> + <div class="table"> + <lims-table :tableData="tableData" :column="columns" :height="'calc(100vh - 250px)'" @pagination="pagination" + :page="page" :tableLoading="tableLoading"></lims-table> + </div> + <AddRecord ref="addRecordRef" @submit="submit"></AddRecord> + </div> + +<!-- <div class="tables">--> +<!-- <ZTTable--> +<!-- :column="columns"--> +<!-- :table-data="tableData"--> +<!-- >--> +<!-- <template slot="action" slot-scope="{ row }">--> +<!-- <el-button type="text" @click="edit(row)">缂栬緫</el-button>--> +<!-- </template>--> +<!-- </ZTTable>--> +<!-- <div class="pagination">--> +<!-- <div></div>--> +<!-- <el-pagination--> +<!-- :page-size="pagination.pageSize"--> +<!-- :page-sizes="[10, 20, 30, 40]"--> +<!-- :total="pagination.total"--> +<!-- layout="total, sizes, prev, pager, next, jumper"--> +<!-- @current-change="handleCurrent"--> +<!-- @size-change="handleSize"--> +<!-- >--> +<!-- </el-pagination>--> +<!-- </div>--> +<!-- </div>--> +<!-- <AddRecord ref="addRecordRef" @submit="submit"></AddRecord>--> +</template> + +<script> +// import axios from "axios"; +// import { getPageAcceptance, addAcceptance, updateAcceptance, getAcceptanceDetails, exportAcceptance } from "@/assets/api/api"; +// import ZTTable from '@/components/caorui/ZTTable/index.vue'; +// import AddRecord from './components/AddRecord.vue'; + +import limsTable from '@/components/Table/lims-table.vue' +import { + getPageAcceptance, + updateAcceptanc, + addAcceptance +} from '@/api/cnas/resourceDemand/standardMaterialAccept/standardMaterialAccept' +export default { + components: { + limsTable + + }, + data() { + return { + form: { + search: undefined + }, + columns: [ + { + label: "鍑哄満缂栧彿", + prop: "factoryNum" + }, + { + label: "鏈夋晥鏈�", + prop: "effectiveDate" + }, + { + label: "鐢熶骇鍘傚", + prop: "factoryManufacturer" + }, + { + label: "鏂囨。缂栧彿", + prop: "fileNum" + }, + { + label: "鏍囧噯鐗╄川鍚嶇О", + prop: "name" + }, + { + label: "瑙勬牸鍨嬪彿", + prop: "model" + }, + { + label: "绠$悊缂栧彿", + prop: "manageNum" + }, + { + label: "瀛樻斁浣嶇疆", + prop: "position" + }, + // { + // label: "搴忓垪鍙�", + // prop: "manageNum" + // }, + { + label: "鎻愪氦鏃ユ湡", + prop: "acquisitionDate" + }, + { + label: "鏁伴噺", + prop: "quantity" + }, + { + fixed: "right", + label: "鎿嶄綔", + align: "center", + dataType: "slot", + slot: "action", + }, + ], + tableData: [], + page: { + total: 0, + size: 10, + current: 1 + }, + tableLoading: false, + } + }, + mounted() { + this.getTableData() + }, + methods: { + async getTableData() { + const res = await getPageAcceptance(this.form); + if(res.code === 200){ + this.tableData = res.data.records; + this.page.total = res.data.total; + } + + }, + openDialog() { + this.$refs.addRecordRef.openDialog() + }, + async submit(form) { + + const {code} = await form.acceptance.id ? updateAcceptanc(this.form):addAcceptance((this.form)); + if(code == 200) { + this.$message.success(`${form.acceptance.id ? '缂栬緫':'娣诲姞'}鎴愬姛`) + this.getTableData() + } + }, + async edit(row) { + const res = await this.getDetail(row.id) + this.$refs.addRecordRef.openDialog({ + acceptance: res.acceptance, + list: res.list + }) + }, + async getDetail(id) { + const { code, data } = await axios({ + method: 'get', + url: getAcceptanceDetails, + params: { id } + }) + if(code == 200) { + return data; + } + }, + reset() { + this.form.search = undefined + this.getTableData() + }, + async exportExcel() { + const res = await axios({ + method: "get", + url: `${exportAcceptance}`, + responseType: "blob" + }) + const blob = new Blob([res], {type: 'application/octet-stream'}); + //灏咮lob 瀵硅薄杞崲鎴愬瓧绗︿覆 + let reader = new FileReader(); + reader.readAsText(blob, 'utf-8'); + reader.onload = () => { + try { + let result = JSON.parse(reader.result); + if (result.message) { + this.$message.error(result.message); + } else { + const url = URL.createObjectURL(blob); + const link = document.createElement('a'); + link.href = url; + link.download = '鏍囧噯鐗╄川楠屾敹.xlsx'; + link.click(); + this.$message.success('瀵煎嚭鎴愬姛') + } + } catch (err) { + console.log(err); + const url = URL.createObjectURL(blob); + const link = document.createElement('a'); + link.href = url; + link.download = '鏍囧噯鐗╄川楠屾敹.xlsx'; + link.click(); + this.$message.success('瀵煎嚭鎴愬姛') + } + } + }, + + // 鍒嗛〉鍒囨崲 + pagination(page) { + this.page.size = page.limit + this.getTableData() + }, + } +} +</script> + +<style scoped> +.search { + height: 46px; + display: flex; + justify-content: space-between; +} +</style> -- Gitblit v1.9.3