Commit 8d67ebc5 by yiyu.li

kex

parent c9e4bab6
<template>
<div class="testdiv">
<div class="divborder newSearchDiv" style="margin:0px;">
<div class="filter">
<label>{{$t('100089')}}</label>
<Select
v-model="productname"
label-in-value
clearable
filterable
remote
:remote-method="remoteMethod1"
:loading="loading1"
class="searchSelect"
>
<Option
v-for="(item,index) in products"
:value="item.code"
:key="index"
>{{ item.name }}({{item.code}})</Option>
</Select>
</div>
<div class="filter">
<label>{{$t('10300002')}}</label>
<Select v-model="type" label-in-value clearable class="searchSelect">
<Option value="1">SN</Option>
<Option value="2">BOX</Option>
</Select>
</div>
<div class="searchBtn">
<Button type="primary" class="twoWord" icon="ios-search" @click="tosearch()">{{$t('1001')}}</Button>
<Button type="success" class="twoWord" icon="md-add-circle" @click="add()">{{$t('1002')}}</Button>
<Button
type="warning"
class="twoWord"
icon="ios-create-outline"
@click="edit()"
>{{$t('1003')}}</Button>
<Button
type="error"
class="twoWord intervalRight"
icon="md-close-circle"
@click="dele()"
>{{$t('1004')}}</Button>
<Button
type="primary"
class="fourWord"
icon="md-download"
@click="loadexcel()"
>{{$t('1005')}}</Button>
<Upload
style="display:inline-block"
ref="upload"
:action="action"
name="excel-file"
:headers="headers"
:show-upload-list="false"
:on-format-error="handleFormatError"
:on-success="handleSuccess"
:on-error="handleError"
:format="['xlsx']"
>
<Button type="primary" class="fourWord" icon="md-cloud-upload">{{$t('1006')}}</Button>
</Upload>
<Button
type="primary"
class="fourWord"
icon="ios-cloud-download"
@click="Export()"
>{{$t('1007')}}</Button>
</div>
</div>
<div class="divborder newTableDiv">
<Table
class="tableClass"
@on-current-change="handleRowChange"
highlight-row
:data="tableData1"
@on-selection-change="handleSelectRow"
:columns="tableColumns1"
></Table>
<div class="pageDiv">
<div class="pageDirection">
<Page
:total="total"
:current="page"
:page-size="pagesize"
@on-change="changePage"
show-elevator
show-sizer
show-total
@on-page-size-change="handlePageSize"
:page-size-opts="[10,20,30,40,100]"
></Page>
</div>
</div>
<Modal class="newModalClass" v-model="addmodal" :styles="{width:'400px'}">
<p slot="header">
<span v-if="modaltype===1">{{$t('1002')}}</span>
<span v-if="modaltype===2">{{$t('1003')}}</span>
</p>
<div class="modal_body">
<div class="filter">
<label>
<i>*</i>
{{$t('100089')}}
</label>
<Select
v-model="addobj.productId"
label-in-value
class="searchSelect"
filterable
remote
:remote-method="remoteMethod1"
:loading="loading1"
>
<Option
v-for="(item,index) in products"
:value="item.code"
:key="index"
>{{ item.name }}({{item.code}})</Option>
</Select>
</div>
<div class="filter">
<label>
<i>*</i>
{{$t('10300002')}}
</label>
<Select v-model="addobj.ruleType" label-in-value class="searchSelect">
<Option :value="1">SN</Option>
<Option :value="2">BOX</Option>
</Select>
</div>
<div class="filter">
<label>
<i>*</i>
{{$t('10300004')}}
</label>
<InputNumber class="searchInput" type="text" v-model="addobj.step" :min="0" />
</div>
<div class="filter">
<label>
<i>*</i>
{{$t('10300005')}}
</label>
<Select
v-model="addobj.codeType"
label-in-value
class="searchSelect"
@on-change="codeTypeChange"
>
<Option :value="0">{{$t('5500241')}}</Option>
<Option :value="1">{{$t('5500242')}}</Option>
<Option :value="2">{{$t('5500243')}}</Option>
<Option :value="4">{{$t('5500251')}}</Option>
</Select>
</div>
<div class="filter" v-show="addobj.codeType===1">
<label>
<i>*</i>
{{$t('10300006')}}
</label>
<Select v-if="codeshow" v-model="addobj.codeFormat" label-in-value class="searchSelect">
<Option v-for="item in codeFormats" :value="item.id" :key="item.id">{{ item.title }}</Option>
</Select>
<Input v-else v-model="addobj.codeFormat" class="searchInput" type="text" />
</div>
<div class="filter" v-show="addobj.codeType===2">
<label>{{this.$t('10300009')}}</label>
<InputNumber class="searchInput" type="text" v-model="addobj.length" :min="0" />
</div>
<div class="filter" v-show="addobj.codeType===0||addobj.codeType===2">
<label>{{this.$t('10300008')}}</label>
<Input class="searchInput" type="text" v-model="addobj.codeValue" />
</div>
</div>
<div slot="footer">
<Button type="text" size="large" @click="addmodal = false">{{$t('1033')}}</Button>
<Button type="primary" v-if="modaltype===1" size="large" @click="adddata()">{{$t('1002')}}</Button>
<Button
type="primary"
v-if="modaltype===2"
size="large"
@click="editdata()"
>{{$t('1003')}}</Button>
</div>
</Modal>
</div>
</div>
</template>
<script>
import axios from '@/libs/api.request';
export default {
data () {
return {
action: axios.publicPath + 'acc/upload/UploadExcel?templateName=SnRule',
headers: {
token: localStorage.getItem('token'),
timestamp: localStorage.getItem('timestamp'),
nonce: localStorage.getItem('nonce'),
sign: localStorage.getItem('sign')
},
// 搜索
loading1: false,
products: [],
productname: '',
type: 0,
modaltype: 1,
// 添加
codeFormats: [],
codeshow: true,
addobj: {
productId: '', // 产品编号
ruleType: '', // 规则类型
step: 0, // 顺序
codeType: '', // 编码类型
codeFormat: '', // 编码格式
length: 0, // 长度
codeValue: '' // 编码值
},
tableData1: [],
total: 0,
page: 1,
pagesize: 10,
addmodal: false,
detailobj: '',
tableColumns1: [
{
type: 'index2',
title: this.$t('1008'),
key: 'xuhao',
render: (h, params) => {
return h(
'span',
params.index + (this.page - 1) * this.pagesize + 1
);
},
width: '70px'
},
{
title: this.$t('100089'),
key: 'productId'
},
{
title: this.$t('10300003'),
key: 'ruleDesc'
},
{
title: this.$t('10300004'),
key: 'step'
},
{
title: this.$t('10300005'),
key: 'codeDesc'
},
{
title: this.$t('10300006'),
key: 'codeFormat'
},
{
title: this.$t('10300007'),
key: 'lengthNull'
},
{
title: this.$t('10300008'),
key: 'value'
}
]
};
},
created () {
this.iniproducts('');
this.tosearch();
this.tableColumns1 = this.$time.initTableTitle(this.tableColumns1);
},
methods: {
iniproducts (name) {
var params = {
name: name,
count: 50
};
axios
.request({
url: '/config/ProjectProduct/GetProductsByCode',
params,
method: 'get'
})
.then((res) => {
if (res.data.ret === 1 && res.data.data.length > 0) {
this.products = res.data.data;
}
});
},
remoteMethod1 (name) {
if (name !== '') {
this.loading1 = true;
setTimeout(() => {
this.loading1 = false;
this.iniproducts(name);
}, 200);
} else {
this.iniproducts('');
}
},
handleFormatError (file) {
this.$Message.error(this.$t('950396') + file.name + this.$t('950397'));
},
handleSuccess (res, file) {
if (res.ret == 1) {
this.$Message.success(this.$t('950398'));
this.tosearch();
} else {
if ((res.msg + '').indexOf(',') != -1) {
inittip(res.msg);
} else {
this.$Message.error(this.$t(res.msg));
}
}
},
handleError () {
this.$Message.error(this.$t('2010006') + '!');
},
handleSelectRow: function (data) {
var ids = [];
for (var i in data) {
ids.push(data[i].id);
}
this.selectids = ids.join(',');
},
tosearch () {
this.page = 1;
this.pagesize = 10;
this.search();
},
search () {
var params = {
productCode: this.productname,
rule: this.type,
// type,
page: this.page,
pagesize: this.pagesize
};
axios
.request({
url: '/acc/SerinumConfig/GetList',
params,
method: 'get'
})
.then((res) => {
this.total = 0;
this.tableData1 = [];
if (
res.data.ret === 1 &&
res.data.data != null &&
res.data.data.length > 0
) {
this.total = res.data.total;
this.mockTableData1(res.data.data);
}
});
},
mockTableData1 (tablelist) {
let data = [];
tablelist.forEach((item) => {
if (item) {
data.push({
productId: item.productId,
productCode: item.productCode,
ruleDesc: item.ruleDesc,
code: item.code,
codeDesc: item.codeDesc,
codeFormat: item.codeFormat,
step: item.step,
length: item.length,
value: item.value,
ruleKey: item.ruleKey,
id: item.id,
lengthNull:item.lengthNull
});
}
});
this.tableData1 = data;
},
handleRowChange (currentRow, oldCurrentRow) {
this.detailobj = currentRow;
},
handlePageSize (value) {
this.pagesize = value;
this.tableData1 = this.search();
},
changePage (value) {
this.page = value;
this.tableData1 = this.search();
},
codeTypeChange () {
if (this.addobj.codeType === 1) {
this.codeshow = true;
this.codeFormats = [
{
id: 'YYDDD',
title: 'YYDDD'
},
{
id: 'YYYYMMDD',
title: 'YYYYMMDD'
},
{
id: 'YYMMDD',
title: 'YYMMDD'
}
];
} else {
this.codeshow = false;
}
},
add () {
this.modaltype = 1; // 添加
this.addmodal = true;
this.codeshow = true;
this.addobj = {
productId: '', // 产品编号
ruleType: '', // 规则类型
step: 0, // 顺序
codeType: '', // 编码类型
codeFormat: '', // 编码格式
length: 0, // 长度
codeValue: '' // 编码值
};
},
adddata () {
if(this.addobj.length===null)
{
this.addobj.length=0;
}
if (
this.addobj.productId === '' ||
this.addobj.ruleType === '' ||
this.addobj.step === 0 ||
this.addobj.step===null ||
this.addobj.codeType === ''
) {
this.$Message.error(this.$t('9000136'));
return false;
}
if(this.addobj.codeType === 1){
if(this.addobj.codeFormat === ''){
this.$Message.error(this.$t('9000136'));
return false;
}
}
if(this.addobj.codeType === 0){
this.addobj.length = 0
this.addobj.codeFormat = ''
}else if(this.addobj.codeType === 1){
this.addobj.length = 0
this.addobj.codeValue = ''
}else if(this.addobj.codeType === 2){
this.addobj.codeFormat = ''
}else if(this.addobj.codeType === 4){
this.addobj.codeFormat = ''
this.addobj.length = 0
this.addobj.codeValue = ''
}
let data = {
productId: this.addobj.productId,
ruleType: parseInt(this.addobj.ruleType),
step: this.addobj.step,
codeType: parseInt(this.addobj.codeType),
codeFormat: this.addobj.codeFormat,
length: this.addobj.length,
codeValue: this.addobj.codeValue
};
axios
.request({
url: '/acc/SerinumConfig/Add',
data,
method: 'post'
})
.then((res) => {
if (res.data.ret === 1) {
this.$Message.success(this.$t('1055'));
this.addmodal = false;
this.detailobj = '';
this.tosearch();
} else {
this.$Message.error(this.$t(res.data.msg));
}
});
},
dele () {
if (
this.detailobj === '' ||
this.detailobj === undefined ||
this.detailobj.id === undefined ||
this.detailobj.id === 0
) {
this.$Message.error(this.$t('1017'));
return false;
} else {
var data = {
Id: this.detailobj.id,
resultStatus: this.detailobj.resultStatus
};
this.$Modal.confirm({
title: this.$t('1018'),
content: '',
width: '290px',
closable: true,
okText: this.$t('1004'),
onOk: () => {
axios
.request({
url: '/acc/SerinumConfig/Delete',
data,
method: 'post'
})
.then((res) => {
if (res.data.ret === 1) {
this.$Message.success(this.$t('1058'));
this.tosearch();
this.detailobj = '';
} else {
this.$Message.error(this.$t(res.data.msg));
}
});
}
});
}
},
edit () {
this.modaltype = 2;
if (
this.detailobj === '' ||
this.detailobj === undefined ||
this.detailobj.id === undefined
) {
this.$Message.error(this.$t('1017'));
return false;
}
this.modaltype = 2; // 编辑
this.addmodal = true;
this.addobj.productId =
this.detailobj.productId === null ? '' : this.detailobj.productId;
this.addobj.ruleType = this.detailobj.ruleKey;
this.addobj.step = this.detailobj.step;
this.addobj.length =
this.detailobj.length === '' ? 0 : parseInt(this.detailobj.length);
this.addobj.codeValue = this.detailobj.value;
this.addobj.codeType = this.detailobj.code;
this.codeTypeChange();
this.addobj.codeFormat = this.detailobj.codeFormat;
},
editdata () {
if (
this.addobj.productId === '' ||
this.addobj.ruleType === '' ||
this.addobj.step === 0 ||
this.addobj.codeType === ''
) {
this.$Message.error(this.$t('9000136'));
return false;
}
if(this.addobj.codeType === 1){
if(this.addobj.codeFormat === ''){
this.$Message.error(this.$t('9000136'));
return false;
}
}
if(this.addobj.codeType === 0){
this.addobj.length = 0
this.addobj.codeFormat = ''
}else if(this.addobj.codeType === 1){
this.addobj.length = 0
this.addobj.codeValue = ''
}else if(this.addobj.codeType === 2){
this.addobj.codeFormat = ''
}else if(this.addobj.codeType === 4){
this.addobj.codeFormat = ''
this.addobj.length = 0
this.addobj.codeValue = ''
}
let data = {
id: this.detailobj.id,
productId: this.addobj.productId,
ruleType: parseInt(this.addobj.ruleType),
step: this.addobj.step,
codeType: parseInt(this.addobj.codeType),
codeFormat: this.addobj.codeFormat,
length: this.addobj.length,
codeValue: this.addobj.codeValue
};
axios
.request({
url: '/acc/SerinumConfig/Update',
data,
method: 'post'
})
.then((res) => {
if (res.data.ret === 1) {
this.$Message.success(this.$t('1060'));
this.detailobj = '';
this.addmodal = false;
this.search();
} else {
this.$Message.error(this.$t(res.data.msg));
}
});
},
loadexcel () {
axios
.request({
url: '/config/Download/GetTemplate?name=SnRule',
method: 'get'
})
.then((res) => {
if (res.data.ret === 1) {
window.location.href = axios.publicPath + '' + res.data.data;
} else {
this.$Message.error(this.$t(res.data.msg));
}
});
},
Export () {
let data = {
productCode: this.productname,
runtype: this.type
};
axios
.request({
url: '/acc/SerinumConfig/ExportData',
data,
method: 'get'
})
.then((res) => {
if (res.data.ret === 1) {
window.location.href = axios.publicPath + '' + res.data.data;
} else {
this.$Message.error(this.$t(res.data.msg));
}
});
},
unloadexcel () {
let file = this.readyFiles[0];
const data = new FormData();
data.append('file', file);
data.append('type', 2);
axios
.request({
url: '/acc/Upload/UploadExcel?templateName=SnRule',
data,
method: 'post'
})
.then((res) => {
if (res.data.ret === 1) {
this.tosearch();
this.$Message.success(this.$t('100378'));
} else {
this.$Message.error(this.$t(res.data.msg));
}
})
.catch((err) => {
this.$Message.error(this.$t(err.msg));
});
}
}
};
</script>
<style lang="less" scoped>
</style>
<template>
<div>
员工上下料管理
<div class="divborder">
<div class="choose">
<p class="selectTitle">
1.请选择生产线
<span class="red">*</span>
</p>
<div class="row">
<p
:key="index"
class="options"
v-for="(item, index) in productionLine"
@click="change(index)"
:class="{ active: a == index }"
>
{{ item.title }}
</p>
</div>
<div class="choose">
<p class="selectTitle">
2.上下料工位
<span class="red">*</span>
</p>
<div class="row">
<p
:key="index"
class="options"
v-for="(item, index) in productionLine"
@click="change(index)"
:class="{ active: a == index }"
>
{{ item.title }}
</p>
</div>
</div>
<div class="choose">
<p class="selectTitle">
3.操作
<span class="red">*</span>
</p>
<Tabs type="card">
<TabPane label="上料">
<div class="filter">
<label>上料信息:</label>
<Input
type="text"
class="searchInput"
style="width: 300px"
></Input>
</div>
<div class="row">
<p class="flex">
<span class="infoLabel">工单信息:</span>
<span class="info"></span>
</p>
<p class="flex">
<span class="infoLabel">产品编号:</span>
<span class="info"></span>
</p>
<p class="flex">
<span class="infoLabel">产品名称:</span>
<span class="info"></span>
</p>
<p class="flex">
<span class="infoLabel">工件编号:</span>
<span class="info"></span>
</p>
</div>
<div class="row">
<p class="flex">
<span class="infoLabel">状态:</span>
<span class="info"></span>
</p>
<p class="flex">
<span class="infoLabel">储位编号:</span>
<span class="info"></span>
</p>
<p class="flex">
<span class="infoLabel">工装编号:</span>
<span class="info"></span>
</p>
<Button type="primary">储位选择</Button>
</div>
<div>
<Button type="primary">准备上料</Button>
<Button type="primary">安装完成</Button>
</div>
</TabPane>
<TabPane label="下料">下料</TabPane>
</Tabs>
<Modal
class="newModalClass"
:title="$t(900249)"
v-model="modal"
:styles="{ width: '940px' }"
>
<div class="modal_body" style="padding-right: 40px">
<Table
class="tableClass"
:data="data1"
:columns="columns1"
:max-height="200"
></Table>
</div>
<div slot="footer">
<Button
type="text"
size="large"
@click="modal = false"
v-text="$t('1033')"
>取消</Button
>
<Button
type="primary"
size="large"
v-text="$t('1011')"
>提交</Button
>
</div>
</Modal>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
}
data() {
return {
productionLine: [],
a: 0,
modal:false,
columns1:[],
data1:[]
};
},
created() {},
methods: {
change(i) {
this.a = i;
// 1. 选中产线后自动带出来工位属性中为上下料属性的工位
},
},
};
</script>
<style>
<style scoped>
.selectTitle {
font-size: 18px;
}
.row {
display: flex;
flex-direction: row;
flex-wrap: wrap;
flex-shrink: 1;
}
.options {
font-size: 12px;
padding: 0 12px;
/* width: 100px; */
height: 50px;
line-height: 50px;
text-align: center;
border-radius: 5px;
background-color: #f2f2f2;
margin: 10px 0;
margin-right: 50px;
cursor: pointer;
}
.active {
background-color: #2d8cf0;
color: #fff;
}
.actionTitle {
height: 50px;
width: 100px;
line-height: 50px;
font-size: 25px;
text-align: center;
/* border: 1px solid #b2b2b2; */
/* color: #c0c0c0; */
}
.flex {
display: flex;
}
.infoLabel {
display: inline-block;
margin-right: 10px;
width: 100px;
text-align: right;
font-size: 16px;
}
.info {
display: inline-block;
width: 200px;
font-size: 20px;
}
</style>
\ No newline at end of file
<template>
<div>
任务清单管理
<div class="testdiv">
\任务清单管理
<div class="divborder">
<h2>基本信息</h2>
<div class="newSearchDiv">
<div class="filter">
<label>{{ $t("1950574") }}</label>
<Cascader trigger="click" class="searchSelect"></Cascader>
</div>
<div class="filter">
<label>任务类型:</label>
<Select
label-in-value
clearable
filterable
class="searchSelect"
>
</Select>
</div>
<div class="filter">
<label>发起地:</label>
<Select
label-in-value
clearable
filterable
class="searchSelect"
>
</Select>
</div>
<div class="filter">
<label>产品编号:</label>
<Select
label-in-value
clearable
filterable
class="searchSelect"
>
</Select>
</div>
<div class="filter">
<label>任务编号:</label>
<Input type="text" class="searchInput"></Input>
</div>
<div class="filter">
<label>工件编号:</label>
<Input type="text" class="searchInput"></Input>
</div>
<div class="filter">
<label>状态:</label>
<Select
label-in-value
clearable
filterable
class="searchSelect"
>
</Select>
</div>
<div class="filter">
<label>执行类型:</label>
<Select
label-in-value
clearable
filterable
class="searchSelect"
>
</Select>
</div>
<div class="filter">
<label>触发时间:</label>
<DatePicker
type="datetimerange"
placeholder="Select date"
style="width: 200px"
></DatePicker>
</div>
<div class="filter">
<label>完成时间:</label>
<DatePicker
type="datetimerange"
placeholder="Select date"
style="width: 200px"
></DatePicker>
</div>
<div class="searchBtn">
<Button type="primary" class="twoWord" icon="ios-search">{{
$t("1001")
}}</Button>
<!-- -->
<Button type="primary" class="twoWord" icon="ios-search"
>取消</Button
><!--只有状态是待执行的可以改成取消-->
<Button type="primary" class="twoWord" icon="ios-search"
>手动</Button
><!--当生产线的模式是手动是才可以进行手动任务执行-->
<Button type="primary" class="twoWord" icon="ios-search"
>导出</Button
>
</div>
</div>
</div>
<div class="divborder newTableDiv">
<Table class="tableClass" :columns="columns1" :data="data1"></Table>
<div class="pageDiv">
<div class="pageDirection">
<Page
:total="total"
:current="page"
show-elevator
show-sizer
show-total
:page-size-opts="[10, 20, 30, 40, 100]"
></Page>
</div>
</div>
</div>
</div>
</template>
<script>
export default {};
export default {
data() {
return {
columns1: [
{
title: this.$t('1008'),
key: 'xuhao',
render: (h, params) => {
return h(
'span',
params.index + (this.page - 1) * this.pagesize + 1
);
},
width: 70
},
{
title: this.$t('100089'),
key: 'productcode',
minWidth: 150
},
],
data1: [],
total: 0,
page: 1,
pagesize: 10,
};
},
created() {
this.columns1 = this.$time.initTableTitle(this.columns1);
},
methods: {},
};
</script>
<style>
......
<template>
<div class="testdiv">
工装装配信息
<div class="divborder">
<h2>基本信息</h2>
<div class="newSearchDiv">
<div class="filter">
<label>工装类别:</label>
<Select
label-in-value
clearable
filterable
class="searchSelect"
>
</Select>
</div>
<div class="filter">
<label>夹具类型:</label>
<Select
label-in-value
clearable
filterable
class="searchSelect"
>
</Select>
</div>
<div class="searchBtn">
<Button
type="primary"
class="twoWord"
icon="ios-search"
@click="search(1, 10)"
>{{ $t("1001") }}</Button
>
<Button
type="success"
class="twoWord"
icon="md-add-circle"
@click="add()"
>{{ $t("1002") }}</Button
>
<Button
type="warning"
class="twoWord"
icon="ios-create-outline"
@click="edit()"
>{{ $t("1003") }}</Button
>
<Button
type="error"
class="twoWord intervalRight"
icon="md-close-circle"
@click="dele()"
>{{ $t("1004") }}</Button
>
<Button
type="primary"
class="fourWord"
icon="md-download"
@click="loadExcel()"
>{{ $t("1005") }}</Button
>
<!-- <Upload
style="display: inline-block"
ref="upload"
:action="action"
name="excel-file"
:headers="headers"
:show-upload-list="false"
:on-format-error="handleFormatError"
:on-success="handleSuccess"
:on-error="handleError"
:format="['xlsx']"
> -->
<Button
type="primary"
class="fourWord"
icon="md-cloud-upload"
>{{ $t("1006") }}</Button
>
<!-- </Upload> -->
<Button
type="primary"
class="fourWord"
icon="ios-cloud-download"
@click="exportEecel()"
>{{ $t("1007") }}</Button
>
</div>
</div>
</div>
<div class="divborder newTableDiv">
<Table class="tableClass" :columns="columns1" :data="data1"></Table>
<div class="pageDiv">
<div class="pageDirection">
<Page
:total="total"
:current="page"
show-elevator
show-sizer
show-total
:page-size-opts="[10, 20, 30, 40, 100]"
></Page>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
columns1: [
{
title: this.$t("1008"),
key: "xuhao",
render: (h, params) => {
return h(
"span",
params.index + (this.page - 1) * this.pagesize + 1
);
},
width: 70,
},
{
title: this.$t("100089"),
key: "productcode",
minWidth: 150,
},
],
data1: [],
total: 0,
page: 1,
pagesize: 10,
};
},
created() {
this.columns1 = this.$time.initTableTitle(this.columns1);
},
methods: {
search(page,pagesize){},
add(){},
edit(){},
dele(){},
loadExcel(){},
exportEecel(){},
},
};
</script>
<style>
</style>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment