master
lion 6 months ago
parent d327d5c8df
commit 6e301feb8d

@ -10,7 +10,7 @@ ENV='development'
VUE_APP_BASE_API = http://192.168.60.99:8004/
VUE_APP_UPLOAD_API = http://192.168.60.99:8004/api/admin/upload-file
VUE_APP_OA_URL= http://192.168.60.18:8001
VUE_APP_OA_URL_TYPE = '{"领用":"31","处置":"32","应急":"33"}'
VUE_APP_OA_URL_TYPE = '{"领用":"37","处置":"38","应急":"39",'采购入库':40}'

@ -52,6 +52,7 @@
"<p style='margin:0'>类型:"+printObj['wuzileixing']+"</p>"+
"<p style='margin:0'>名称:"+printObj['zichanmingcheng']+"</p>"+
"<p style='margin:0'>型号:"+printObj['guigexinghao']+"</p>"+
"<p style='margin:0'>批次:"+printObj['rukupici']+"</p>"+
"</div>"+
"</div>"+
"</li>")

@ -91,8 +91,7 @@
}
function saveWuzishuliang() {
printObj.zaikushuliang = $("#input").val()
return
printObj.zaikushuliang = $("#input").val()
$.ajax({
type: "post",
timeout: 15000,

@ -0,0 +1,50 @@
import request from "@/utils/request";
function customParamsSerializer(params) {
let result = '';
for (let key in params) {
if (params.hasOwnProperty(key)) {
if (Array.isArray(params[key])) {
params[key].forEach((item,index) => {
result += `${key}[${index}][key]=${item.key}&${key}[${index}][op]=${item.op}&${key}[${index}][value]=${item.value}&`;
});
} else {
result += `${key}=${params[key]}&`;
}
}
}
return result.slice(0, -1);
}
export function index(params,isLoading = false) {
return request({
method: "get",
url: "/api/admin/work-sheet/index",
params,
paramsSerializer: customParamsSerializer,
isLoading
})
}
export function show(params, isLoading = true) {
return request({
method: "get",
url: "/api/admin/work-sheet/show",
params,
isLoading
})
}
export function save(data) {
return request({
method: "post",
url: "/api/admin/work-sheet/save",
data
})
}
export function destroy(params) {
return request({
method: "get",
url: "/api/admin/work-sheet/destroy",
params
})
}

@ -96,36 +96,36 @@
fixed: 'left',
width: 80,
},
{
label: '入库时间',
prop:'stocks_rukushijian',
width: 180
},
{
label: '入库类型',
prop:'stocks_rukuleixing',
width: 180,
},
{
label: '关联记录',
prop:'stocks_guanlianjilu',
width: 180,
},
{
label: '经办人',
prop:'stocks_jingbanren',
width: 180,
},
{
label: '记录人员',
prop:'stocks_jilurenyuan',
width: 180,
},
{
label: '保管人员',
prop:'stocks_baoguanrenyuan',
width: 180,
},
// {
// label: '',
// prop:'stocks_rukushijian',
// width: 180
// },
// {
// label: '',
// prop:'stocks_rukuleixing',
// width: 180,
// },
// {
// label: '',
// prop:'stocks_guanlianjilu',
// width: 180,
// },
// {
// label: '',
// prop:'stocks_jingbanren',
// width: 180,
// },
// {
// label: '',
// prop:'stocks_jilurenyuan',
// width: 180,
// },
// {
// label: '',
// prop:'stocks_baoguanrenyuan',
// width: 180,
// },
{
label: "物资编码",
width: 180,

@ -199,19 +199,36 @@
rotate: 30, //
fontSize: 12 ,//
color: '#fff',
show: false
// lineStyle: { }
},
labelLine: {
show: true, // 线
length: 10, // 线
length2: 30, // 线
lineStyle: {
color: '#fff', // 线
width: 1, // 线
type: 'solid' // 线
show: false
},
emphasis: {
label: {
show: true
},
labelLine: {
show: true,
length: 20,
length2: 30,
lineStyle: {
color: '#fff'
}
}
},
// labelLine: {
// show: true, // 线
// length: 10, // 线
// length2: 30, // 线
// lineStyle: {
// color: '#fff', // 线
// width: 1, // 线
// type: 'solid' // 线
// }
// },
// labelLine: {
// show: true,
// length: 10,
// length2: 15,
@ -258,7 +275,8 @@
position: 'inside',
color: '#fff',
formatter: '{b}\n{c}',
fontSize: 14
fontSize: 14,
position: 'center',
},
itemStyle: {
shadowBlur: 10,

@ -108,7 +108,8 @@
align="center"
>
<template slot-scope="scope">
{{ getStatusText(scope.row.status) }}
<el-tag type="success" v-if="scope.row.status===1">{{ getStatusText(scope.row.status) }}</el-tag>
<el-tag v-else>{{ getStatusText(scope.row.status) }}</el-tag>
</template>
</el-table-column>
<el-table-column
@ -120,8 +121,8 @@
>
<template slot-scope="scope">
<div style="display: flex; gap: 8px; justify-content: center;">
<Button v-if="scope.row.status === 1" type="primary" size="small" style="border-radius: 6px;" @click="viewDetail(scope.row)"></Button>
<Button v-if="scope.row.status === 0" type="primary" size="small" style="border-radius: 6px;" ghost @click="completeMaintenance(scope.row)"></Button>
<el-button v-if="scope.row.status === 1" type="success" size="small" @click="viewDetail(scope.row)"></el-button>
<el-button v-if="scope.row.status === 0" type="primary" size="small" ghost @click="completeMaintenance(scope.row)"></el-button>
</div>
</template>
</el-table-column>
@ -676,7 +677,7 @@ export default {
}
.page-title {
font-size: 1.5rem;
font-size: 15px;
font-weight: 600;
color: #333;
}
@ -728,13 +729,13 @@ export default {
.card-item.completed { border-left-color: #52c41a; }
.card-label {
font-size: 0.9rem;
font-size: 18px;
color: #888;
margin-bottom: 8px;
}
.card-value {
font-size: 1.8rem;
font-size: 18px;
font-weight: 600;
color: #333;
}
@ -837,7 +838,7 @@ export default {
display: flex;
align-items: flex-start;
justify-content: space-between;
padding: 1.2rem 1.5rem;
padding: 12px 15px;
background: #f5f7fa;
border-bottom: 1px solid #eaeaea;
border-radius: 12px 12px 0 0;
@ -846,7 +847,7 @@ export default {
.modal-title {
margin-bottom: 0;
line-height: 1.5;
font-size: 1.35rem;
font-size: 16px;
font-weight: 700;
color: #222;
}
@ -856,7 +857,7 @@ export default {
margin: -1rem -1rem -1rem auto;
background-color: transparent;
border: 0;
font-size: 2rem;
font-size: 20px;
font-weight: 700;
line-height: 1;
color: #888;
@ -873,7 +874,7 @@ export default {
.modal-body {
background: #fcfcfd;
padding: 2rem 1.5rem 1.5rem 1.5rem;
padding: 20px 15px 15px 15px;
border-radius: 0 0 12px 12px;
display: grid;
grid-template-columns: 1fr 1fr;
@ -894,7 +895,7 @@ export default {
.form-group label {
color: #888;
font-size: 0.98rem;
font-size: 12px;
margin-bottom: 4px;
font-weight: 500;
}
@ -904,8 +905,8 @@ export default {
.form-group input[type="file"] {
display: block;
width: 100%;
padding: 0.5rem 0.75rem;
font-size: 0.9rem;
padding: 5px 7.5px;
font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #495057;
@ -921,11 +922,11 @@ export default {
}
.form-group input[type="file"] {
padding: 0.3rem 0.75rem;
padding: 3px 7.5px;
}
.form-text {
font-size: 0.8rem;
font-size: 16px;
color: #6c757d;
}
@ -956,7 +957,7 @@ export default {
.form-value {
color: #222;
font-size: 1.08rem;
font-size: 12px;
font-weight: 500;
background: transparent;
border: none;
@ -1044,7 +1045,7 @@ export default {
max-width: 98vw;
}
.modal-body {
padding: 1rem 0.5rem 1rem 0.5rem;
padding: 10px 5px;
grid-template-columns: 1fr;
}
}
@ -1054,7 +1055,7 @@ export default {
justify-content: center;
align-items: center;
flex-wrap: wrap;
padding: 0.75rem;
padding: 7.5px;
border-top: 1px solid #dee2e6;
border-bottom-right-radius: 12px;
border-bottom-left-radius: 12px;

@ -21,15 +21,15 @@
</div>
</div>
</template>
<template v-slot:guanliandiaoling v-if="activeStep===0 && chukuType==='令'">
<template v-slot:guanliandiaoling v-if="activeStep===0 && chukuType==='令'">
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>关联凋令
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>关联工单
</div>
<div class="xy-table-item-content">
<el-select v-model="form.guanliandiaoling" filterable style="width: 300px;" placeholder="请选择凋令">
<el-option v-for="item in diaolingList" :key="item.cangkumingcheng" :label="item.cangkumingcheng"
:value="item.cangkumingcheng">
<el-select @change="changeDiaoling" v-model="form.guanliandiaoling" filterable style="width: 300px;" placeholder="请选择工单">
<el-option v-for="item in diaolingList" :key="item.id" :label="item.title"
:value="item.id">
</el-option>
</el-select>
</div>
@ -109,7 +109,7 @@
</div>
</div>
</template>
<template v-slot:zuozhengwenjian v-if="activeStep===0">
<template v-slot:zuozhengwenjian v-if="activeStep===0">
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>出库文件
@ -141,9 +141,8 @@
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>出库明细
</div>
<div class="xy-table-item-content">
<div class="xy-table-item-content" style="width: calc(100% - 160px);">
<Button type="primary" icon="md-add" style="margin-bottom: 10px" @click="isShowMingxi=true"></Button>
<xy-table style="width: 100%" :height="260" :is-page="false" :list="mingxiList" :table-item="mingxiTable">
<template v-slot:btns>
<el-table-column label="操作" width="90" header-align="center" align="center">
@ -294,6 +293,9 @@
show,
destroy
} from "@/api/system/baseForm.js"
import {
index as indexDiaoling
} from "@/api/workOrder.js"
import {
desChuku
} from "@/api/system/log.js"
@ -491,11 +493,37 @@
},
created() {
this.headers.token = getToken()
this.getCangku()
this.getCangku()
this.getWorkOrder()
this.getWuzi()
},
methods: {
//
async getWorkOrder(){
const res = await indexDiaoling({
page:1,
page_size:999
})
this.diaolingList = res.data
},
changeDiaoling(e){
let arr =[]
this.diaolingList.map(item=>{
if(item.id===e){
if(item.files.length>0){
item.files.map(item=>{
arr.push({
id:item.id,
url:item.url,
name:item.original_name
})
})
}
}
})
this.fileList = arr
},
//
beforeUpload(file) {
// if (file.size / 1000 > 500) {
@ -546,6 +574,16 @@
})
return
}
//
if(this.chukuType==='调令'){
if(!this.form.guanliandiaoling){
Message({
type: 'warning',
message: '请选择关联工单'
})
return
}
}
this.activeStep++
} else if (this.activeStep === 1) {
if (this.mingxiList.length === 0) {
@ -672,21 +710,30 @@
// this.isShowWuzi = true
},
selectInventorysMx(e){
this.wuziList.forEach((items) => {
this.$set(items, 'isSelect', false)
if (items.id == e.id) {
this.$set(items, 'isSelect', true)
this.mingxiObj.wuzibianma = e.wuzibianma
this.mingxiObj.zichanmingcheng = e.zichanmingcheng
this.mingxiObj.wuzileixing = e.wuzileixing
this.mingxiObj.rukupici = e.rukupici
this.mingxiObj.zaikushuliang = e.zaikushuliang
this.mingxiObj.jiliangdanwei = e.jiliangdanwei
this.mingxiObj.inventorys_id = e.id
this.mingxiObj.guigexinghao = e.guigexinghao
this.mingxiObj.shengchanriqi = e.shengchanriqi
}
});
this.mingxiObj.wuzibianma = e.wuzibianma
this.mingxiObj.zichanmingcheng = e.zichanmingcheng
this.mingxiObj.wuzileixing = e.wuzileixing
this.mingxiObj.rukupici = e.rukupici
this.mingxiObj.zaikushuliang = e.zaikushuliang
this.mingxiObj.jiliangdanwei = e.jiliangdanwei
this.mingxiObj.inventorys_id = e.id
this.mingxiObj.guigexinghao = e.guigexinghao
this.mingxiObj.shengchanriqi = e.shengchanriqi
// this.wuziList.forEach((items) => {
// this.$set(items, 'isSelect', false)
// if (items.id == e.id) {
// this.$set(items, 'isSelect', true)
// this.mingxiObj.wuzibianma = e.wuzibianma
// this.mingxiObj.zichanmingcheng = e.zichanmingcheng
// this.mingxiObj.wuzileixing = e.wuzileixing
// this.mingxiObj.rukupici = e.rukupici
// this.mingxiObj.zaikushuliang = e.zaikushuliang
// this.mingxiObj.jiliangdanwei = e.jiliangdanwei
// this.mingxiObj.inventorys_id = e.id
// this.mingxiObj.guigexinghao = e.guigexinghao
// this.mingxiObj.shengchanriqi = e.shengchanriqi
// }
// });
this.mingxiList.map(item=>{
if(item.inventorys_id===this.mingxiObj.inventorys_id){
Message({
@ -764,8 +811,10 @@
const res = await show({
id: this.id,
table_name: this.tableName
})
this.form = {
})
this.activeStep=0
this.form = {
activeStep:0,
chukushijian: res?.chukushijian,
zhuangtai: res?.zhuangtai,
guanliandiaoling:res?.guanliandiaoling,
@ -773,7 +822,8 @@
jieyongbumen: res?.jieyongbumen,
// jieyongren:res?.jieyongren,
jilurenyuan: res?.jilurenyuan,
baofeiyuanyin: res?.baofeiyuanyin,
baofeiyuanyin: res?.baofeiyuanyin,
zuozhengwenjian:res.zuozhengwenjian?res.zuozhengwenjian:[],
beizhu: res?.beizhu,
chukumingxi: ''
}
@ -817,9 +867,15 @@
})
return
}
this.form.zuozhengwenjian = []
for (var k of this.fileList) {
this.form.zuozhengwenjian.push(k?.response?.id)
if(k.response){
this.form.zuozhengwenjian.push(k.response.id)
}else{
this.form.zuozhengwenjian.push(k.id)
}
}
// return
@ -881,7 +937,8 @@
this.type = ''
this.mingxiList = []
this.fileList = []
this.authName = ''
this.authName = ''
this.activeStep = 0
this.$refs['dialog'].reset()
}
}
@ -971,5 +1028,11 @@
::v-deep .el-input-number .el-input__inner {
text-align: left !important;
}
::v-deep .el-step.is-simple .el-step__head{
display: flex;
}
::v-deep .chukumingxi{
width:100%
}
</style>

@ -3,7 +3,7 @@
<div class="button-wrap">
<Button type="primary" @click="editorChuku('','add','领用')"></Button>
<Button type="primary" @click="editorChuku('','add','处置')"></Button>
<Button type="primary" @click="editorChuku('','add','凋令')"></Button>
<Button type="primary" @click="editorChuku('','add','调令')"></Button>
</div>
<div ref="lxHeader">
<lx-header icon="md-apps" :text="`出库管理`" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
@ -105,8 +105,8 @@
id:'处置',
value:'处置出库',
},{
id:'令',
value:'令出库'
id:'令',
value:'令出库'
}],
chukuType:'领用',
customForm: {

@ -670,16 +670,17 @@
}).then(res => {
this.$message.success('保存成功')
console.log("res",res)
if(res && res.inventorysIds.length>0){
this.printArr = res.inventorysIds.join(",")
}
if (this.type === 'editor' || this.form.rukuleixing==='回库') {
this.resetForm()
this.$emit("refresh")
this.$emit("refresh")
this.isShow = false
return
}
if(res && res.inventorysIds && res.inventorysIds.length>0){
this.printArr = res.inventorysIds.join(",")
}
this.activeStep++
})

@ -40,7 +40,7 @@
<template v-slot:shifouzili>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>是否
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>是否纳入物资管
</div>
<div class="xy-table-item-content">
<el-select v-model="form.shifouzili" style="width:300px" placeholder="请选择">

@ -11,7 +11,7 @@
<Select @on-change="clearArea" v-model="select.area" style="width: 200px;margin-right: 10px;" placeholder="所在区域" clearable>
<Option v-for="item in areaList" :key="item.id" :value="item.id">{{ item.value }}</Option>
</Select>
<Select v-model="select.shifouzili" style="width: 200px;margin-right: 10px;" placeholder="是否理" clearable>
<Select v-model="select.shifouzili" style="width: 200px;margin-right: 10px;" placeholder="是否纳入物资管理" clearable>
<Option v-for="item in [{id:'是',value:'是'},{id:'否',value:'否'}]" :key="item.id" :value="item.id">{{ item.value }}</Option>
</Select>
<Button type="primary" @click="select.page=1,getList()"></Button>
@ -116,10 +116,10 @@
width: 120
},
{
label: '是否理',
label: '是否纳入物资管理',
prop: 'shifouzili',
align: 'left',
width: 80
align: 'center',
width: 160
},
{
label: '货架信息',

@ -145,7 +145,12 @@
const res = await index({
page: 1,
page_size: 999,
table_name: 'materialstorages',
table_name: 'materialstorages',
filter:[{
key:'shifouzili',
op:'eq',
value:'是'
}]
})
this.repositories = res.data.reverse();
} catch (error) {

@ -0,0 +1,173 @@
<template>
<div>
<xy-dialog ref="dialog" :width='40' :is-show.sync="isShow" type="form" :title="type==='add'?'新增':'编辑'" :form="form"
:rules="rules" @submit="submit">
<template v-slot:title>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>名称
</div>
<div class="xy-table-item-content">
<el-input style="width:300px" type="text" v-model="form.title"></el-input>
</div>
</div>
</template>
<template v-slot:time>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>发起时间
</div>
<div class="xy-table-item-content">
<el-date-picker style="width:300px" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" v-model="form.time"
type="datetime" placeholder="选择时间">
</el-date-picker>
</div>
</div>
</template>
<template v-slot:content>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>内容
</div>
<div class="xy-table-item-content">
<el-input style="width:300px" type="textarea" v-model="form.content"></el-input>
</div>
</div>
</template>
<template v-slot:file_ids>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;"></span>附件
</div>
<div class="xy-table-item-content">
<el-upload style="width:300px" class="upload-demo" :action="action" :on-success="handleSuccess" :on-remove="handleRemove"
multiple :file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
</div>
</div>
</template>
</xy-dialog>
</div>
</template>
<script>
import {
save,
show
} from "@/api/workOrder.js"
import {
Message
} from 'element-ui'
export default {
data() {
return {
isShow: false,
type: 'add',
id: '',
action:`${process.env.VUE_APP_UPLOAD_API}`,
fileList:[],
form: {
title:'',
time:'',
content:'',
file_ids:[]
},
rules: {
time: [{
required: true,
message: '请选择时间'
}]
},
}
},
created() {
},
methods: {
async getDetail() {
const res = await show({
id: this.id
})
this.$integrateData(this.form, res)
let arr =[]
if(res.files && res.files.length>0){
res.files.map(item=>{
arr.push({
id:item.id,
url:item.url,
name:item.original_name
})
})
this.fileList = arr
}
},
handleRemove(file, fileList) {
this.fileList = fileList
},
handleSuccess(response, file, fileList) {
this.fileList = fileList
},
submit() {
console.log(this.fileList)
let arr = []
if (this.fileList.length > 0) {
for (var g of this.fileList) {
if (g.response) {
arr.push(g.response.id)
} else {
arr.push(g.id)
}
}
} else {
arr = []
}
this.form.file_ids = arr
// return
if (this.type === 'add') {
this.form.id = ''
}
save(this.form).then(res => {
Message({
type: 'success',
message: this.type === 'add'?'新增成功':'编辑成功'
})
this.$emit('refresh')
this.isShow = false
})
},
},
watch: {
isShow(newVal) {
if (newVal) {
if (this.type === 'editor') {
this.form.id = this.id
this.getDetail()
}
} else {
this.id = ''
this.type = 'add'
this.fileList = []
this.$refs['dialog'].reset()
}
},
}
}
</script>
<style scoped lang="scss">
::v-deep .time,
::v-deep .content,
::v-deep .file_ids{
flex-basis: 100%;
}
</style>

@ -0,0 +1,140 @@
<template>
<div>
<div ref="lxHeader">
<lx-header icon="md-apps" text="防汛工单管理" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
<slot>
<div style="display: flex;justify-content: flex-start;flex-wrap: wrap;">
<!-- <Select v-model="select.storages_id" style="width: 200px;margin-right: 10px;" placeholder="所在仓库" clearable>
<Option v-for="item in cangkuList" :key="item.id" :value="item.id">{{ item.cangkumingcheng }}</Option>
</Select> -->
<Button type="primary" @click="getindex"></Button>
<Button icon="ios-add" type="primary" style="margin-left: 10px;"
@click="$refs['addWorkOrder'].isShow = true,$refs['addWorkOrder'].type = 'add'">添加</Button>
</div>
</slot>
</lx-header>
</div>
<xy-table :list="list" :total="total" v-loading="loading" @pageSizeChange="pageSizeChange"
@pageIndexChange="pageChange" :table-item="table">
<template v-slot:btns>
<el-table-column label="操作" width="180" header-align="center">
<template slot-scope="scope">
<div>
<Button type="primary" size="small" style="margin-left: 10px;"
@click="editorMater(scope.row.id,'editor')">编辑</Button>
<Poptip transfer confirm title="确认要删除吗?" @on-ok="deleteMater(scope.row)">
<Button type="error" style="margin-left: 10px;" size="small" ghost>删除</Button>
</Poptip>
</div>
</template>
</el-table-column>
</template>
</xy-table>
<addWorkOrder ref="addWorkOrder" @refresh="getindex"></addWorkOrder>
</div>
</template>
<script>
import {
index,
destroy
} from "@/api/workOrder.js"
import addWorkOrder from "./component/addWorkOrder.vue"
import {
Message
} from 'element-ui'
export default {
components: {
addWorkOrder,
},
data() {
return {
loading: false,
select: {
pageSize: 10,
pageIndex: 1,
time: "",
},
total: 0,
list: [],
table: [{
label: '序号',
type: 'index',
fixed: 'left',
width: 80
},
{
label: "名称",
width: 240,
prop: 'title',
align: 'left',
},
{
label: "发起时间",
width: 180,
prop: 'time',
align: 'center',
},
{
label: "内容",
prop: 'content',
align: 'left'
}
]
}
},
mounted() {
this.getindex()
},
methods: {
async getindex() {
this.loading = true
const res = await index({
page_size: this.select.pageSize,
page: this.select.pageIndex,
filter: [{
"key": "time",
"op": "eq",
"value": this.select.time ? this.select.time : ''
}]
})
this.list = res.data
this.total = res.total
this.loading = false
},
pageChange(e) {
this.select.pageIndex = e
this.getindex()
},
pageSizeChange(e) {
this.select.pageSize = e
this.getindex()
},
editorMater(id, type) {
this.$refs['addWorkOrder'].id = id
this.$refs['addWorkOrder'].type = type
this.$refs['addWorkOrder'].isShow = true
},
deleteMater(row) {
destroy({
id: row.id,
}).then(res => {
Message({
type: 'success',
message: '删除成功'
})
this.getindex()
})
},
},
}
</script>
<style scoped>
</style>
Loading…
Cancel
Save