<template>
|
<div ref="container" class="page-list-container">
|
<!--数据Table-->
|
<yrt-data-list :ref="dataListRef" :editor-ref="editorRef" :data-options="dataOptions" :fields.sync="dataListOptions.fields" :buttons="dataListOptions.buttons" :button-click="buttonClick" :data-list-selections.sync="dataListSelections" :auth-nodes="authNodes">
|
<template slot="common-column-slot" slot-scope="{row, col}">
|
<template v-if="col.prop=='onShelveStatus'">
|
<template>
|
<el-tag v-if="row[col.prop]=='上架中'" color="#ffcc66" style="color:black;border:0">
|
{{ row[col.prop] }}
|
</el-tag>
|
<el-tag v-else-if="row[col.prop]=='部分上架'" color="#ff6633" style="color:black;border:0">
|
{{ row[col.prop] }}
|
</el-tag>
|
<el-tag v-else-if="row[col.prop]=='上架完成'" color="#33ccff" style="color:black;border:0">
|
{{ row[col.prop] }}
|
</el-tag>
|
<el-tag v-else-if="row[col.prop]=='待上架'" color="#ffff33" style="color:black;border:0">
|
{{ row[col.prop] }}
|
</el-tag>
|
<el-tag v-else color="#1626b6" style="color:#888;">
|
{{ row[col.prop] }}
|
</el-tag>
|
</template>
|
<!-- </template>
|
</state-flow> -->
|
</template>
|
<!--分拣状态字段-->
|
<template v-else-if="col.prop == 'sortingStatus'">
|
<template>
|
<el-tag v-if="row[col.prop] == 1" color="#ffff33" style="color:black;border:0">
|
{{ $refs[dataListRef].translateText( col.prop, row[col.prop], col.dropdown_Id ) }}
|
</el-tag>
|
<el-tag v-else-if="row[col.prop] == 2" color="#00ff99" style="color:black;border:0">
|
{{ $refs[dataListRef].translateText( col.prop, row[col.prop], col.dropdown_Id ) }}
|
</el-tag>
|
<el-tag v-else-if="row[col.prop] == 3" color="#ff0000" style="color:black;border:0;color:#fff;">
|
{{ $refs[dataListRef].translateText( col.prop, row[col.prop], col.dropdown_Id ) }}
|
</el-tag>
|
<el-tag v-else-if="row[col.prop] == 5" color="#6699FF" style="color:black;border:0;color:#fff;">
|
{{ $refs[dataListRef].translateText( col.prop, row[col.prop], col.dropdown_Id ) }}
|
</el-tag>
|
<span v-else>
|
{{ row[col.prop] }}
|
</span>
|
</template>
|
</template>
|
<template v-else-if="col.prop=='auditing'">
|
<template>
|
<el-tag v-if="row[col.prop]==1" color="#ffcc66" style="color:black;border:0">
|
审核失败
|
</el-tag>
|
<el-tag v-else-if="row[col.prop]==2" color="#33ccff" style="color:black;border:0">
|
通过审核
|
</el-tag>
|
<el-tag v-else-if="row[col.prop]==0" color="#ffff33" style="color:black;border:0">
|
待审核
|
</el-tag>
|
</template>
|
</template>
|
<!--连接字段-->
|
<template v-else-if="col.prop==dataOptions.linkColumn">
|
<el-link type="primary" @click.native="()=>{linkEditor(row[dataOptions.idField]);}">{{ row[col.prop] }}</el-link>
|
</template>
|
<template v-else>
|
<template v-if="['date', 'datetime'].indexOf(col.dataType)>=0 && col.formatter">
|
{{ common.formatDate(row[col.prop], col.formatter) }}
|
</template>
|
<template v-else-if="['byte', 'int32', 'int64', 'decimal', 'double'].indexOf(col.dataType)>=0 && col.formatter">
|
{{ common.formatNumber(row[col.prop], col.formatter) }}
|
</template>
|
<template v-else>
|
{{ row[col.prop] }}
|
</template>
|
</template>
|
</template>
|
</yrt-data-list>
|
|
<!--数据编辑器Editor-->
|
<yrt-editor :ref="editorRef" :data-list-ref="dataListRef" v-bind="editorOptions" :data-options="dataOptions" :action.sync="editorOptions.action" :top.sync="editorOptions.top" :visible.sync="editorOptions.config.visible" :detail-button-click="detailButtonClick" :auth-nodes="authNodes">
|
</yrt-editor>
|
|
<!--明细选择器-->
|
<yrt-selector ref="selector-dialog" :config="selectorConfig" :visible.sync="selectorConfig.visible" @onSelected="onSelected"></yrt-selector>
|
</div>
|
</template>
|
|
<script>
|
import baseLayout from "@/components/common/base-layout.vue";
|
import yrtSelector from "@/components/common/yrtSelector.vue";
|
export default {
|
name: "inbound-purchase-shelve-return",
|
components: {
|
yrtSelector
|
},
|
mixins: [baseLayout],
|
// 自定义处理权限函数
|
doAuth(the) {
|
// 判断当前版本是否拥有导入权限
|
var authList = [{ name: "上架撤销", auth: "cancelShelve" }, { name: "强制完成上架", auth: "forceShelve" }, { name: "打印上架单", auth: "print" }];
|
const names = authList.map(item => {
|
return item.name;
|
});
|
the.common.isSaaSAuth(names, res => {
|
authList.forEach(node => {
|
let hasAuth = res.result;
|
if (hasAuth) {
|
hasAuth = res.data.some(item => {
|
return item.moduleName === node.name;
|
});
|
}
|
the.authNodes[node.auth] = hasAuth;
|
});
|
});
|
},
|
data() {
|
return {
|
selectorConfig: {
|
title: "物料选择器",
|
width: "1000px",
|
visible: false,
|
router: "/selector/s-product-selector"
|
}
|
};
|
},
|
methods: {
|
// 列表页面按钮点击事件
|
buttonClick(authNode) {
|
switch (authNode) {
|
case "auditing":
|
// 批量审核
|
this.singleAuditing();
|
break;
|
case "cancelShelve":
|
// 撤销上架
|
this.cancelShelve();
|
break;
|
case "forceShelve":
|
// 强制完成上架
|
this.forceShelve();
|
break;
|
}
|
},
|
// 明细按钮点击事件
|
detailButtonClick(authNode) {
|
switch (authNode) {
|
case "add":
|
// 明细添加
|
this.selectorConfig.visible = true;
|
break;
|
}
|
},
|
// 将选择器选择中的数据填充到明细表中
|
onSelected(rows) {
|
this.editor.addDetailDataRow(rows);
|
this.selectorConfig.visible = false;
|
},
|
// 审核
|
singleAuditing() {
|
const menu_Id = this.dataOptions.menu_Id;
|
this.$confirm("确定要批量进行审核操作吗?", "批量审核", {
|
confirmButtonText: "确定",
|
cancelButtonText: "取消",
|
type: "warning"
|
})
|
.then(() => {
|
// 获得已选中的ID
|
const shelve_Ids = this.dataListSelections.map((item, index, Array) => {
|
return item.shelve_Id;
|
});
|
if (!shelve_Ids) {
|
this.$message({
|
message: "至少选中一行!",
|
type: "warning"
|
});
|
return;
|
}
|
const url = "/api/inbound/shelve/singleConfirm";
|
const params = {
|
openNodeApi: true,
|
idValues: shelve_Ids,
|
menu_Id: menu_Id
|
};
|
const ref = this.dataList;
|
var callback = res => {
|
this.common.showMsg(res);
|
if (res.result) {
|
ref.loadData();
|
}
|
};
|
this.common.ajax(url, params, callback, ref);
|
})
|
.catch(() => {
|
this.$message({
|
type: "info",
|
message: "已取消"
|
});
|
});
|
},
|
// 撤销上架
|
cancelShelve() {
|
const shelve_Ids = this.dataListSelections.map((item, index, Array) => {
|
return item.shelve_Id;
|
});
|
const onShelveStatus = this.dataListSelections.map((item, index, Array) => {
|
return item.onShelveStatus;
|
});
|
if (!shelve_Ids.length) {
|
this.$message.error("请至少选择一行上架数据!");
|
return false;
|
}
|
if (onShelveStatus === "待上架") {
|
this.$message.error("只有上架的单据才可以执行取消操作!!");
|
return false;
|
}
|
this.$confirm("确定将选中的数据撤销上架吗?", "撤销上架", {
|
confirmButtonText: "确定",
|
cancelButtonText: "取消",
|
type: "warning"
|
})
|
.then(() => {
|
const url = "/api/inbound/shelve/cancelShelve";
|
const params = {
|
shelve_Ids: shelve_Ids
|
};
|
const ref = this.dataList;
|
var callback = res => {
|
this.common.showMsg(res);
|
if (res.result) {
|
ref.loadData();
|
}
|
};
|
this.common.ajax(url, params, callback, ref);
|
})
|
.catch(() => {
|
this.$message({
|
type: "info",
|
message: "已取消"
|
});
|
});
|
},
|
// 强制完成上架
|
forceShelve() {
|
const shelve_Ids = this.dataListSelections.map((item, index, Array) => {
|
return item.shelve_Id;
|
});
|
if (!shelve_Ids.length) {
|
this.$message.error("请至少选择一行未上架数据!");
|
return false;
|
}
|
this.$confirm("确定将选中的数据强制完成上架吗?", "强制完成上架", {
|
confirmButtonText: "确定",
|
cancelButtonText: "取消",
|
type: "warning"
|
})
|
.then(() => {
|
const url = "/api/inbound/shelve/forceShelve";
|
const params = {
|
shelve_Ids: shelve_Ids
|
};
|
const ref = this.dataList;
|
const callback = res => {
|
this.common.showMsg(res);
|
if (res.result) {
|
ref.loadData();
|
}
|
};
|
this.common.ajax(url, params, callback, ref);
|
})
|
.catch(() => {
|
this.$message({
|
type: "info",
|
message: "已取消"
|
});
|
});
|
}
|
}
|
};
|
</script>
|