学 赵
1 year ago
74 changed files with 2163 additions and 1086 deletions
@ -1,130 +0,0 @@ |
|||||
import version from "../../version.js"; |
|
||||
import { state2 as state, state3 } from "../../state.js"; |
|
||||
import businessType from "../../businessType.js"; |
|
||||
import invoiceState from "../../invoiceState.js"; |
|
||||
|
|
||||
const schema = { |
|
||||
title: "商务审批", |
|
||||
type: "object", |
|
||||
properties: { |
|
||||
version, |
|
||||
realnvBillNum: { |
|
||||
title: "金税发票号", |
|
||||
type: "string", |
|
||||
}, |
|
||||
invbillNum: { |
|
||||
title: "系统发票号", |
|
||||
type: "string", |
|
||||
}, |
|
||||
amt: { |
|
||||
title: "未税金额", |
|
||||
type: "number", |
|
||||
}, |
|
||||
taxAmt: { |
|
||||
title: "税后金额", |
|
||||
type: "number", |
|
||||
}, |
|
||||
invGroupNum: { |
|
||||
title: "发票分组号", |
|
||||
type: "number", |
|
||||
}, |
|
||||
businessType, |
|
||||
state, |
|
||||
invoiceState, |
|
||||
taxDiff: { |
|
||||
title: "发票税后尾差", |
|
||||
type: "number", |
|
||||
}, |
|
||||
clientCode: { |
|
||||
title: "客户代码", |
|
||||
type: "string", |
|
||||
}, |
|
||||
}, |
|
||||
}; |
|
||||
|
|
||||
const queryUrl = "settleaccount/bbac_ba_service/main-query"; |
|
||||
const exportUrl = "settleaccount/bbac_ba_service/export"; |
|
||||
const invoiceUrl = "settleaccount/bbac_ba_service/generate-invoice"; |
|
||||
const receivedUrl = "settleaccount/bbac_ba_service/received"; |
|
||||
const rejectUrl = "settleaccount/bbac_ba_service/reject"; |
|
||||
const reissueUrl = "settleaccount/bbac_ba_service/reissue-invoice"; |
|
||||
const queryMethod = "POST"; |
|
||||
const exportMethod = "POST"; |
|
||||
const invoiceMethod = "POST"; |
|
||||
const receivedMethod = "POST"; |
|
||||
const rejectMethod = "POST"; |
|
||||
const reissueMethod = "POST"; |
|
||||
|
|
||||
export default function () { |
|
||||
return { |
|
||||
query: { |
|
||||
url: queryUrl, |
|
||||
method: queryMethod, |
|
||||
hasFilter: true, |
|
||||
schema: { |
|
||||
title: "商务审批", |
|
||||
type: "object", |
|
||||
properties: { |
|
||||
filters: { |
|
||||
title: "项目", |
|
||||
type: "array", |
|
||||
hidden: true, |
|
||||
items: { |
|
||||
type: "object", |
|
||||
properties: { |
|
||||
logic: { |
|
||||
type: "int", |
|
||||
}, |
|
||||
column: { |
|
||||
type: "string", |
|
||||
}, |
|
||||
action: { |
|
||||
type: "int", |
|
||||
}, |
|
||||
value: { |
|
||||
type: "string", |
|
||||
}, |
|
||||
}, |
|
||||
}, |
|
||||
default: [ |
|
||||
{ |
|
||||
logic: "and", |
|
||||
column: "version", |
|
||||
action: "equal", |
|
||||
value: null, |
|
||||
readOnly: true, |
|
||||
}, |
|
||||
], |
|
||||
}, |
|
||||
skipCount: { |
|
||||
hidden: true, |
|
||||
default: 0, |
|
||||
}, |
|
||||
maxResultCount: { |
|
||||
hidden: true, |
|
||||
default: 10, |
|
||||
}, |
|
||||
sorting: { |
|
||||
hidden: true, |
|
||||
}, |
|
||||
}, |
|
||||
}, |
|
||||
}, |
|
||||
table: { |
|
||||
schema: schema, |
|
||||
}, |
|
||||
edit: { |
|
||||
exportUrl, |
|
||||
invoiceUrl, |
|
||||
receivedUrl, |
|
||||
rejectUrl, |
|
||||
reissueUrl, |
|
||||
exportMethod, |
|
||||
invoiceMethod, |
|
||||
receivedMethod, |
|
||||
rejectMethod, |
|
||||
reissueMethod, |
|
||||
schema: schema, |
|
||||
}, |
|
||||
}; |
|
||||
} |
|
@ -1,130 +0,0 @@ |
|||||
import version from "../../version.js"; |
|
||||
import { state2 as state, state3 } from "../../state.js"; |
|
||||
import businessType from "../../businessType.js"; |
|
||||
import invoiceState from "../../invoiceState.js"; |
|
||||
|
|
||||
const schema = { |
|
||||
title: "不可结算单", |
|
||||
type: "object", |
|
||||
properties: { |
|
||||
version, |
|
||||
realnvBillNum: { |
|
||||
title: "金税发票号", |
|
||||
type: "string", |
|
||||
}, |
|
||||
invbillNum: { |
|
||||
title: "系统发票号", |
|
||||
type: "string", |
|
||||
}, |
|
||||
amt: { |
|
||||
title: "未税金额", |
|
||||
type: "number", |
|
||||
}, |
|
||||
taxAmt: { |
|
||||
title: "税后金额", |
|
||||
type: "number", |
|
||||
}, |
|
||||
invGroupNum: { |
|
||||
title: "发票分组号", |
|
||||
type: "number", |
|
||||
}, |
|
||||
businessType, |
|
||||
state, |
|
||||
invoiceState, |
|
||||
taxDiff: { |
|
||||
title: "发票税后尾差", |
|
||||
type: "number", |
|
||||
}, |
|
||||
clientCode: { |
|
||||
title: "客户代码", |
|
||||
type: "string", |
|
||||
}, |
|
||||
}, |
|
||||
}; |
|
||||
|
|
||||
const queryUrl = "settleaccount/hbpo_ba_service/main-query"; |
|
||||
const exportUrl = "settleaccount/hbpo_ba_service/export"; |
|
||||
const invoiceUrl = "settleaccount/hbpo_ba_service/generate-invoice"; |
|
||||
const receivedUrl = "settleaccount/hbpo_ba_service/received"; |
|
||||
const rejectUrl = "settleaccount/hbpo_ba_service/reject"; |
|
||||
const reissueUrl = "settleaccount/hbpo_ba_service/reissue-invoice"; |
|
||||
const queryMethod = "POST"; |
|
||||
const exportMethod = "POST"; |
|
||||
const invoiceMethod = "POST"; |
|
||||
const receivedMethod = "POST"; |
|
||||
const rejectMethod = "POST"; |
|
||||
const reissueMethod = "POST"; |
|
||||
|
|
||||
export default function () { |
|
||||
return { |
|
||||
query: { |
|
||||
url: queryUrl, |
|
||||
method: queryMethod, |
|
||||
hasFilter: true, |
|
||||
schema: { |
|
||||
title: "不可结算单", |
|
||||
type: "object", |
|
||||
properties: { |
|
||||
filters: { |
|
||||
title: "项目", |
|
||||
type: "array", |
|
||||
hidden: true, |
|
||||
items: { |
|
||||
type: "object", |
|
||||
properties: { |
|
||||
logic: { |
|
||||
type: "int", |
|
||||
}, |
|
||||
column: { |
|
||||
type: "string", |
|
||||
}, |
|
||||
action: { |
|
||||
type: "int", |
|
||||
}, |
|
||||
value: { |
|
||||
type: "string", |
|
||||
}, |
|
||||
}, |
|
||||
}, |
|
||||
default: [ |
|
||||
{ |
|
||||
logic: "and", |
|
||||
column: "version", |
|
||||
action: "equal", |
|
||||
value: null, |
|
||||
readOnly: true, |
|
||||
}, |
|
||||
], |
|
||||
}, |
|
||||
skipCount: { |
|
||||
hidden: true, |
|
||||
default: 0, |
|
||||
}, |
|
||||
maxResultCount: { |
|
||||
hidden: true, |
|
||||
default: 10, |
|
||||
}, |
|
||||
sorting: { |
|
||||
hidden: true, |
|
||||
}, |
|
||||
}, |
|
||||
}, |
|
||||
}, |
|
||||
table: { |
|
||||
schema: schema, |
|
||||
}, |
|
||||
edit: { |
|
||||
exportUrl, |
|
||||
invoiceUrl, |
|
||||
receivedUrl, |
|
||||
rejectUrl, |
|
||||
reissueUrl, |
|
||||
exportMethod, |
|
||||
invoiceMethod, |
|
||||
receivedMethod, |
|
||||
rejectMethod, |
|
||||
reissueMethod, |
|
||||
schema: schema, |
|
||||
}, |
|
||||
}; |
|
||||
} |
|
@ -0,0 +1,473 @@ |
|||||
|
import html from "html"; |
||||
|
import { schemaToModel } from "html"; |
||||
|
import { ref, defineModel, nextTick, onMounted, watch } from "vue"; |
||||
|
import request from "../request/index.js"; |
||||
|
import AppForm from "../components/form/index.js"; |
||||
|
import AppTable from "../components/table/index.js"; |
||||
|
|
||||
|
export default { |
||||
|
components: { AppForm, AppTable }, |
||||
|
template: html`<el-drawer
|
||||
|
v-model="show" |
||||
|
destroy-on-close |
||||
|
size="50%" |
||||
|
class="page-drawer" |
||||
|
:close-on-click-modal="false" |
||||
|
> |
||||
|
<template #header> <span class="el-dialog__title"> 结算明细 </span> </template> |
||||
|
<el-row style="height:calc(100vh - 160px);" v-loading="loading"> |
||||
|
<el-col> |
||||
|
<el-tabs> |
||||
|
<el-tab-pane label="发票和结算分组对应关系" v-if="model.invoicE_MAP_GROUP.length"> |
||||
|
<el-scrollbar> |
||||
|
<app-table :data="model.invoicE_MAP_GROUP" :columns="columns2" /> |
||||
|
</el-scrollbar> |
||||
|
</el-tab-pane> |
||||
|
<el-tab-pane label="发票明细" v-if="model.invoicE_WAIT_DETAIL.length"> |
||||
|
<el-scrollbar> |
||||
|
<app-table :data="model.invoicE_WAIT_DETAIL" :columns="columns1" /> |
||||
|
</el-scrollbar> |
||||
|
</el-tab-pane> |
||||
|
<el-tab-pane label="已结分组包含不可结算零件" v-if="model.invoicE_NOT_SETTLE.length"> |
||||
|
<el-scrollbar> |
||||
|
<app-table :data="model.invoicE_NOT_SETTLE" :columns="columns3" /> |
||||
|
</el-scrollbar> |
||||
|
</el-tab-pane> |
||||
|
<el-tab-pane label="发票调整明细" v-if="model.adJ_DETAIL.length"> |
||||
|
<el-scrollbar> |
||||
|
<app-table :data="model.adJ_DETAIL" :columns="columns4" /> |
||||
|
</el-scrollbar> |
||||
|
</el-tab-pane> |
||||
|
</el-tabs> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<template #footer> |
||||
|
<span class="dialog-footer"> |
||||
|
<el-button type="primary" @click="show=false"> 返回 </el-button> |
||||
|
<el-button |
||||
|
type="primary" |
||||
|
@click="showSetupDialog" |
||||
|
v-if="isBusiness&&data.invbillNum&&model.adJ_DETAIL.length===0" |
||||
|
> |
||||
|
重开发票 |
||||
|
</el-button> |
||||
|
</span> |
||||
|
</template> |
||||
|
</el-drawer> |
||||
|
<el-dialog |
||||
|
class="re-open" |
||||
|
v-model="setupDialogVisable" |
||||
|
:close-on-click-modal="false" |
||||
|
align-center |
||||
|
destroy-on-close |
||||
|
style="width:50%;height:80%" |
||||
|
> |
||||
|
<template #header>发票重开</template> |
||||
|
<el-steps :active="setupRef" align-center style="height:60px;"> |
||||
|
<el-step title="调整明细列表" /> |
||||
|
<el-step title="发票明细对比" /> |
||||
|
<el-step title="发票预览" /> |
||||
|
</el-steps> |
||||
|
<div v-show="setupRef===1" style="height:100%;"> |
||||
|
<el-row style="padding:14px 0;height:60px;"> |
||||
|
<el-col> |
||||
|
<el-button type="primary" @click="showAddAdjDialog">新建</el-button> |
||||
|
<el-button type="primary" @click="showImportAdjDialog">导入</el-button> |
||||
|
<el-button type="primary" @click="deleteAdj">删除</el-button> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-scrollbar ref="scrollRef"> |
||||
|
<el-row style="height:100%;"> |
||||
|
<el-col style="height:calc(100% - 180px);"> |
||||
|
<app-table ref="adjListRef" :data="adjList" :columns="columns5" /> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
</el-scrollbar> |
||||
|
</div> |
||||
|
<template #footer> |
||||
|
<span class="dialog-footer"> |
||||
|
<el-button type="primary" @click="setupRef-=1" v-if="setupRef>1">上一步</el-button> |
||||
|
</span> |
||||
|
<span class="dialog-footer"> |
||||
|
<el-button type="primary" @click="setupRef+=1" v-if="setupRef<3">下一步</el-button> |
||||
|
<el-button type="primary" @click="submitReOpen" v-if="setupRef===3">确定</el-button> |
||||
|
</span> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
<el-dialog |
||||
|
v-model="addDialogVisible" |
||||
|
align-center |
||||
|
destroy-on-close |
||||
|
:close-on-click-modal="false" |
||||
|
style="width:380px;height:480px;" |
||||
|
> |
||||
|
<template #header>添加调整明细</template> |
||||
|
<el-scrollbar> |
||||
|
<el-row> |
||||
|
<el-col> |
||||
|
<app-form |
||||
|
ref="addAdjFormRef" |
||||
|
v-if="addDialogVisible&&adjModel" |
||||
|
:schema="adjSchema" |
||||
|
v-model="adjModel" |
||||
|
:hideButton="true" |
||||
|
:close-on-click-modal="false" |
||||
|
inline |
||||
|
/> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
</el-scrollbar> |
||||
|
<template #footer> |
||||
|
<span class="dialog-footer"> |
||||
|
<el-button type="primary" @click="addAdj">确定</el-button> |
||||
|
</span> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
<el-dialog |
||||
|
style="width:380px;height:480px;" |
||||
|
align-center |
||||
|
destroy-on-close |
||||
|
:close-on-click-modal="false" |
||||
|
v-model="importDialogVisible" |
||||
|
> |
||||
|
<template #header>导入调整明细</template> |
||||
|
<el-scrollbar> |
||||
|
<el-row v-loading="loading"> |
||||
|
<el-col> |
||||
|
<app-form |
||||
|
ref="importAdjFromRef" |
||||
|
v-if="importDialogVisible&&importAdjModel" |
||||
|
:schema="importAdjSchema" |
||||
|
v-model="importAdjModel" |
||||
|
:hideButton="true" |
||||
|
inline |
||||
|
/> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
</el-scrollbar> |
||||
|
<template #footer> |
||||
|
<span class="dialog-footer"> |
||||
|
<el-button type="primary" :disabled="loading" @click="importAdj">确定</el-button> |
||||
|
</span> |
||||
|
</template> |
||||
|
</el-dialog>`, |
||||
|
styles: html` <style>
|
||||
|
.page-drawer .el-tab-pane { |
||||
|
width: 100%; |
||||
|
height: calc(100vh - 160px); |
||||
|
} |
||||
|
.page-drawer .el-tabs__content, |
||||
|
.page-drawer .el-scrollbar { |
||||
|
width: 100%; |
||||
|
height: calc(100vh - 160px - 40px); |
||||
|
} |
||||
|
.re-open .el-dialog__footer { |
||||
|
display: flex; |
||||
|
justify-content: space-between; |
||||
|
} |
||||
|
.el-dialog__body { |
||||
|
height: calc(100% - 120px); |
||||
|
} |
||||
|
.re-open .el-scrollbar, |
||||
|
.re-open .el-scrollbar__view { |
||||
|
height: calc(100% - 120px); |
||||
|
} |
||||
|
</style>`, |
||||
|
props: ["modelValue", "data", "isBusiness"], |
||||
|
emit: ["update:modelValue"], |
||||
|
setup(props, context) { |
||||
|
const show = ref(props.modelValue); |
||||
|
watch(show, (value) => context.emit("update:modelValue", value)); |
||||
|
const loading = ref(false); |
||||
|
const model = ref({ |
||||
|
invoicE_WAIT_DETAIL: [], |
||||
|
invoicE_MAP_GROUP: [], |
||||
|
invoicE_NOT_SETTLE: [], |
||||
|
adJ_DETAIL: [], |
||||
|
}); |
||||
|
//
|
||||
|
const columns1 = [ |
||||
|
{ |
||||
|
dataKey: "version", |
||||
|
title: "期间", |
||||
|
}, |
||||
|
{ |
||||
|
dataKey: "invbillNum", |
||||
|
title: "发票号", |
||||
|
}, |
||||
|
{ |
||||
|
dataKey: "invGroupNum", |
||||
|
title: "发票分组号", |
||||
|
}, |
||||
|
{ |
||||
|
dataKey: "settleGroupNum", |
||||
|
title: "结算分组号", |
||||
|
}, |
||||
|
{ |
||||
|
dataKey: "amt", |
||||
|
title: "金额", |
||||
|
}, |
||||
|
]; |
||||
|
const columns2 = [ |
||||
|
{ |
||||
|
key: "version", |
||||
|
dataKey: "version", |
||||
|
title: "期间", |
||||
|
}, |
||||
|
{ |
||||
|
dataKey: "invbillNum", |
||||
|
title: "发票号", |
||||
|
}, |
||||
|
{ |
||||
|
dataKey: "invGroupNum", |
||||
|
title: "发票分组号", |
||||
|
}, |
||||
|
{ |
||||
|
dataKey: "lu", |
||||
|
title: "零件号", |
||||
|
}, |
||||
|
{ |
||||
|
dataKey: "price", |
||||
|
title: "单价", |
||||
|
}, |
||||
|
{ |
||||
|
dataKey: "qty", |
||||
|
title: "数量", |
||||
|
}, |
||||
|
{ |
||||
|
dataKey: "amt", |
||||
|
title: "金额", |
||||
|
}, |
||||
|
{ |
||||
|
dataKey: "bussiessType", |
||||
|
title: "业务分类", |
||||
|
}, |
||||
|
]; |
||||
|
const columns3 = [ |
||||
|
{ |
||||
|
dataKey: "version", |
||||
|
title: "期间", |
||||
|
}, |
||||
|
{ |
||||
|
dataKey: "invGroupNum", |
||||
|
title: "发票分组号", |
||||
|
}, |
||||
|
{ |
||||
|
dataKey: "settleGroupNum", |
||||
|
title: "结算分组号", |
||||
|
}, |
||||
|
{ |
||||
|
dataKey: "lu", |
||||
|
title: "可结算分组号", |
||||
|
}, |
||||
|
{ |
||||
|
dataKey: "lu1", |
||||
|
title: "不可结算分组号", |
||||
|
}, |
||||
|
]; |
||||
|
const columns4 = [ |
||||
|
{ |
||||
|
dataKey: "oldInvBillNum", |
||||
|
title: "作废发票号", |
||||
|
}, |
||||
|
{ |
||||
|
dataKey: "invBillNum", |
||||
|
title: "发票号", |
||||
|
}, |
||||
|
{ |
||||
|
dataKey: "settleDate", |
||||
|
title: "下线日期", |
||||
|
}, |
||||
|
{ |
||||
|
dataKey: "invGroupNum", |
||||
|
title: "发票分组号", |
||||
|
}, |
||||
|
{ |
||||
|
dataKey: "lu", |
||||
|
title: "零件号", |
||||
|
}, |
||||
|
{ |
||||
|
dataKey: "pn", |
||||
|
title: "标识号", |
||||
|
}, |
||||
|
{ |
||||
|
dataKey: "qty", |
||||
|
title: "数量", |
||||
|
}, |
||||
|
{ |
||||
|
dataKey: "groupNum", |
||||
|
title: "结算分组", |
||||
|
}, |
||||
|
]; |
||||
|
const columns5 = columns4.filter((o) => o.dataKey !== "oldInvBillNum" && o.dataKey !== "invGroupNum"); |
||||
|
columns5.unshift({ |
||||
|
input: "selection", |
||||
|
}); |
||||
|
//显示重开发票对话框
|
||||
|
const setupDialogVisable = ref(false); |
||||
|
const setupRef = ref(1); |
||||
|
const adjList = ref([]); |
||||
|
const scrollRef = ref(null); |
||||
|
const adjListRef = ref(null); |
||||
|
const addDialogVisible = ref(false); |
||||
|
const importDialogVisible = ref(false); |
||||
|
const showSetupDialog = () => { |
||||
|
adjList.value = []; |
||||
|
setupRef.value = 1; |
||||
|
setupDialogVisable.value = true; |
||||
|
}; |
||||
|
const deleteAdj = () => { |
||||
|
const list = adjListRef.value.getSelection(); |
||||
|
if (list.length > 0) { |
||||
|
for (let i = 0; i < list.length; i++) { |
||||
|
adjList.value.splice(list[i] - i, 1); |
||||
|
} |
||||
|
nextTick(() => { |
||||
|
adjListRef.value.clearSelection(); |
||||
|
scrollRef.value.update(); |
||||
|
}); |
||||
|
} |
||||
|
}; |
||||
|
const adjSchema = { |
||||
|
type: "object", |
||||
|
properties: { |
||||
|
invBillNum: { |
||||
|
type: "string", |
||||
|
title: "发票号", |
||||
|
rules: [{ required: true }], |
||||
|
}, |
||||
|
settleDate: { |
||||
|
type: "string", |
||||
|
title: "下线日期", |
||||
|
input: "datetime", |
||||
|
rules: [{ required: true }], |
||||
|
}, |
||||
|
lu: { |
||||
|
type: "string", |
||||
|
title: "零件号", |
||||
|
rules: [{ required: true }], |
||||
|
}, |
||||
|
pn: { |
||||
|
type: "string", |
||||
|
title: "标识号", |
||||
|
rules: [{ required: true }], |
||||
|
}, |
||||
|
qty: { |
||||
|
type: "string", |
||||
|
title: "数量", |
||||
|
input: "number", |
||||
|
rules: [{ required: true }], |
||||
|
}, |
||||
|
groupNum: { |
||||
|
type: "string", |
||||
|
title: "结算分组", |
||||
|
rules: [{ required: true }], |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
const defaultAdjModel = schemaToModel(adjSchema); |
||||
|
const adjModel = ref(Object.assign({}, defaultAdjModel)); |
||||
|
const addAdjFormRef = ref(null); |
||||
|
const showAddAdjDialog = () => { |
||||
|
adjModel.value = Object.assign({}, defaultAdjModel); |
||||
|
addDialogVisible.value = true; |
||||
|
}; |
||||
|
const addAdj = async () => { |
||||
|
try { |
||||
|
const valid = await addAdjFormRef.value.validate(); |
||||
|
if (valid) { |
||||
|
adjList.value.unshift(adjModel.value); |
||||
|
addDialogVisible.value = false; |
||||
|
} |
||||
|
} catch (error) { |
||||
|
console.log(error); |
||||
|
} |
||||
|
}; |
||||
|
const importAdjFromRef = ref(null); |
||||
|
const importAdjSchema = { |
||||
|
type: "object", |
||||
|
properties: { |
||||
|
files: { |
||||
|
title: "文件", |
||||
|
type: "array", |
||||
|
multiple: true, |
||||
|
input: "file", |
||||
|
accept: ".xlsx", |
||||
|
default: [], |
||||
|
limit: 1, |
||||
|
size: 100 * 1024 * 1024, |
||||
|
rules: [ |
||||
|
{ |
||||
|
required: true, |
||||
|
trigger: "change", |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
const defaultImportAdjModel = schemaToModel(importAdjSchema); |
||||
|
const importAdjModel = ref(defaultImportAdjModel); |
||||
|
const showImportAdjDialog = async () => { |
||||
|
importAdjModel.value = Object.assign({}, defaultImportAdjModel); |
||||
|
importDialogVisible.value = true; |
||||
|
}; |
||||
|
const importAdj = async () => { |
||||
|
try { |
||||
|
const valid = await importAdjFromRef.value.validate(); |
||||
|
if (valid) { |
||||
|
loading.value = true; |
||||
|
const url = "settleaccount/vmi/excel-to-json"; |
||||
|
const formData = new FormData(); |
||||
|
formData.append("files", importAdjModel.value.files[0].raw); |
||||
|
const result = await request(url, formData); |
||||
|
if (!result.errors) { |
||||
|
adjList.value = result.data; |
||||
|
importDialogVisible.value = false; |
||||
|
} |
||||
|
} |
||||
|
} catch (error) { |
||||
|
console.log(error); |
||||
|
} finally { |
||||
|
loading.value = false; |
||||
|
} |
||||
|
}; |
||||
|
const submitReOpen = async () => {}; |
||||
|
//
|
||||
|
onMounted(async () => { |
||||
|
loading.value = true; |
||||
|
const response = await request("settleaccount/invoice_service/detail-query", props.data, { method: "POST" }); |
||||
|
model.value = response.data; |
||||
|
loading.value = false; |
||||
|
}); |
||||
|
return { |
||||
|
show, |
||||
|
loading, |
||||
|
model, |
||||
|
columns1, |
||||
|
columns2, |
||||
|
columns3, |
||||
|
columns4, |
||||
|
columns4, |
||||
|
columns5, |
||||
|
showSetupDialog, |
||||
|
setupRef, |
||||
|
setupDialogVisable, |
||||
|
adjList, |
||||
|
adjListRef, |
||||
|
deleteAdj, |
||||
|
showAddAdjDialog, |
||||
|
addDialogVisible, |
||||
|
addAdj, |
||||
|
addAdjFormRef, |
||||
|
importAdjFromRef, |
||||
|
adjSchema, |
||||
|
adjModel, |
||||
|
showImportAdjDialog, |
||||
|
importDialogVisible, |
||||
|
importAdjModel, |
||||
|
importAdjSchema, |
||||
|
importAdj, |
||||
|
scrollRef, |
||||
|
}; |
||||
|
}, |
||||
|
}; |
@ -1,16 +0,0 @@ |
|||||
import AppList from "../../../components/list/index.js"; |
|
||||
import html from "html"; |
|
||||
import useConfig from "../../../models/job-service.js"; |
|
||||
|
|
||||
export default { |
|
||||
components: { AppList }, |
|
||||
template: html`<app-list :config="config" @command="onCommand" />`, |
|
||||
setup() { |
|
||||
const config = useConfig(); |
|
||||
config.query.schema.title = "发运与结算二次"; |
|
||||
const onCommand = async (item, rows) => { |
|
||||
console.log(item.path, item, rows); |
|
||||
}; |
|
||||
return { config, onCommand }; |
|
||||
}, |
|
||||
}; |
|
@ -1,15 +1,23 @@ |
|||||
import AppList from "../../../components/list/index.js"; |
import AppList from "../../../components/list/index.js"; |
||||
import html from "html"; |
import html from "html"; |
||||
|
import { ref } from "vue"; |
||||
import useConfig from "../../../models/pub_ba_service.js"; |
import useConfig from "../../../models/pub_ba_service.js"; |
||||
|
import AppCheck from "../../_check.js"; |
||||
|
|
||||
export default { |
export default { |
||||
components: { AppList }, |
components: { AppList, AppCheck }, |
||||
template: html`<app-list :config="config" @command="onCommand" />`, |
template: html`<app-list :config="config" @command="onCommand" />
|
||||
|
<app-check v-if="visable" v-model="visable" :data="data" :isBusiness="true" />`,
|
||||
setup() { |
setup() { |
||||
const config = useConfig(); |
const config = useConfig(); |
||||
|
const visable = ref(false); |
||||
|
const data = ref(null); |
||||
const onCommand = async (item, rows) => { |
const onCommand = async (item, rows) => { |
||||
|
data.value = { [item.path]: rows[0][item.path] }; |
||||
|
visable.value = true; |
||||
console.log(item.path, item, rows); |
console.log(item.path, item, rows); |
||||
}; |
}; |
||||
return { config, onCommand }; |
config.query.schema.properties.businessType.default = "BeiJian"; |
||||
|
return { config, onCommand, visable, data }; |
||||
}, |
}, |
||||
}; |
}; |
||||
|
@ -1,5 +1,125 @@ |
|||||
import html from "html"; |
import html from "html"; |
||||
|
|
||||
export default { |
export default { |
||||
template: html`<a href="../assets/导入模版.zip" target="blank">导入模板下载</a>`, |
template: html`<a href="../assets/导入模版.zip" target="blank">导入模板下载</a>
|
||||
|
<br /> |
||||
|
<el-tree v-if="0" default-expand-all :data="list" :props="props" @node-click="handleNodeClick" /> `,
|
||||
|
setup() { |
||||
|
const page = "page"; |
||||
|
const createRoute = (path, title, type = "group") => { |
||||
|
return { |
||||
|
path, |
||||
|
title, |
||||
|
meta: { |
||||
|
title, |
||||
|
type, |
||||
|
}, |
||||
|
}; |
||||
|
}; |
||||
|
const createGroup = (input = 1, compare = 1, settle = 1) => { |
||||
|
const result = []; |
||||
|
if (input) { |
||||
|
result.push({ |
||||
|
...createRoute("input", "数据输入"), |
||||
|
children: [ |
||||
|
{ ...createRoute("jie-suan", "结算数据", page) }, |
||||
|
{ ...createRoute("fa-yun", "发运数据", page) }, |
||||
|
{ ...createRoute("edi", "EDI数据", page) }, |
||||
|
], |
||||
|
}); |
||||
|
} |
||||
|
if (compare) { |
||||
|
result.push({ |
||||
|
...createRoute("compare", "数据比对"), |
||||
|
children: [ |
||||
|
{ ...createRoute("fa-yun", "EDI与发运数据", page) }, |
||||
|
{ ...createRoute("jie-suan", "EDI、发运与计算数据比对", page) }, |
||||
|
], |
||||
|
}); |
||||
|
} |
||||
|
if (settle) { |
||||
|
result.push({ |
||||
|
...createRoute("settle", "结算开票"), |
||||
|
children: [ |
||||
|
{ ...createRoute("ke-jie-suan", "可结算单", page) }, |
||||
|
{ ...createRoute("bu-ke-jie-suan", "不可结算单", page) }, |
||||
|
{ ...createRoute("shang-wu", "商务审批", page) }, |
||||
|
{ ...createRoute("ku-cun", "寄售库库存扣减审批", page) }, |
||||
|
], |
||||
|
}); |
||||
|
} |
||||
|
return result; |
||||
|
}; |
||||
|
const list = [ |
||||
|
{ |
||||
|
...createRoute("bbac", "BBAC"), |
||||
|
children: [ |
||||
|
{ |
||||
|
...createRoute("jis", "JIS"), |
||||
|
children: createGroup(), |
||||
|
}, |
||||
|
{ |
||||
|
...createRoute("zhi-gong", "直供件"), |
||||
|
children: createGroup(), |
||||
|
}, |
||||
|
{ |
||||
|
...createRoute("yin-du", "印度件"), |
||||
|
children: createGroup(), |
||||
|
}, |
||||
|
{ |
||||
|
...createRoute("bei-jian", "备件"), |
||||
|
children: createGroup(), |
||||
|
}, |
||||
|
{ |
||||
|
...createRoute("mai-dan", "买单件"), |
||||
|
children: createGroup(1, 1, 0), |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
...createRoute("hbpo", "HBPO"), |
||||
|
children: [ |
||||
|
{ |
||||
|
...createRoute("jis", "JIS"), |
||||
|
children: createGroup(), |
||||
|
}, |
||||
|
{ |
||||
|
...createRoute("zhi-gong", "直供件"), |
||||
|
children: createGroup(), |
||||
|
}, |
||||
|
// {
|
||||
|
// ...createRoute("yin-du", "印度件"),
|
||||
|
// children: createGroup(0, 0, 0),
|
||||
|
// },
|
||||
|
// {
|
||||
|
// ...createRoute("bei-jian", "备件"),
|
||||
|
// children: createGroup(0, 0, 0),
|
||||
|
// },
|
||||
|
{ |
||||
|
...createRoute("mai-dan", "买单件"), |
||||
|
children: createGroup(), |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
]; |
||||
|
const props = { |
||||
|
label: (data) => { |
||||
|
return data.meta?.title; |
||||
|
}, |
||||
|
}; |
||||
|
const handleNodeClick = (a, b, c, d) => { |
||||
|
console.log(a); |
||||
|
console.log(b); |
||||
|
console.log(c); |
||||
|
console.log(d); |
||||
|
if (a.meta?.type === "page") { |
||||
|
console.log(a.path); |
||||
|
} |
||||
|
}; |
||||
|
return { |
||||
|
list, |
||||
|
props, |
||||
|
handleNodeClick, |
||||
|
}; |
||||
|
}, |
||||
}; |
}; |
||||
|
@ -1,15 +1,23 @@ |
|||||
import AppList from "../../../components/list/index.js"; |
import AppList from "../../../components/list/index.js"; |
||||
import html from "html"; |
import html from "html"; |
||||
|
import { ref } from "vue"; |
||||
import useConfig from "../../../models/pub_ba_service.js"; |
import useConfig from "../../../models/pub_ba_service.js"; |
||||
|
import AppCheck from "../../_check.js"; |
||||
|
|
||||
export default { |
export default { |
||||
components: { AppList }, |
components: { AppList, AppCheck }, |
||||
template: html`<app-list :config="config" @command="onCommand" />`, |
template: html`<app-list :config="config" @command="onCommand" />
|
||||
|
<app-check v-if="visable" v-model="visable" :data="data" :isBusiness="true" />`,
|
||||
setup() { |
setup() { |
||||
const config = useConfig(); |
const config = useConfig(); |
||||
|
const visable = ref(false); |
||||
|
const data = ref(null); |
||||
const onCommand = async (item, rows) => { |
const onCommand = async (item, rows) => { |
||||
|
data.value = { [item.path]: rows[0][item.path] }; |
||||
|
visable.value = true; |
||||
console.log(item.path, item, rows); |
console.log(item.path, item, rows); |
||||
}; |
}; |
||||
return { config, onCommand }; |
config.query.schema.properties.businessType.default = "YinDuJian"; |
||||
|
return { config, onCommand, visable, data }; |
||||
}, |
}, |
||||
}; |
}; |
||||
|
@ -1,316 +1,23 @@ |
|||||
import AppList from "../../../components/list/index.js"; |
import AppList from "../../../components/list/index.js"; |
||||
|
import AppForm from "../../../components/form/index.js"; |
||||
import html from "html"; |
import html from "html"; |
||||
import { reactive, ref } from "vue"; |
import { ref } from "vue"; |
||||
import useConfig from "../../../models/invoice/invoice_map_group.js"; |
import useConfig from "../../../models/invoice/invoice_map_group.js"; |
||||
import request from "../../../request/index.js"; |
import AppCheck from "../_check.js"; |
||||
import AppTable from "../../components/table/index.js"; |
|
||||
import { ElMessageBox } from "element-plus"; |
|
||||
import { post } from "../../../request/index.js"; |
|
||||
|
|
||||
export default { |
export default { |
||||
components: { AppList, AppTable }, |
components: { AppList, AppForm, AppCheck }, |
||||
template: html`<app-list :config="config" @command="onCommand" />
|
template: html`<app-list :config="config" @command="onCommand" />
|
||||
<el-drawer v-model="drawer" destroy-on-close size="50%" class="page-drawer"> |
<app-check v-if="visable" v-model="visable" :data="data" />`,
|
||||
<template #header> <span class="el-dialog__title"> 结算明细 </span> </template> |
|
||||
<el-row style="height:calc(100vh - 160px);" v-loading="loading"> |
|
||||
<el-col> |
|
||||
<el-tabs> |
|
||||
<el-tab-pane label="发票和结算分组对应关系" v-if="model.invoicE_WAIT_DETAIL.length"> |
|
||||
<el-scrollbar> |
|
||||
<app-table :data="model.invoicE_WAIT_DETAIL" :columns="columns1" /> |
|
||||
</el-scrollbar> |
|
||||
</el-tab-pane> |
|
||||
<el-tab-pane label="已结分组包含不可结算零件" v-if="model.invoicE_MAP_GROUP.length"> |
|
||||
<el-scrollbar> |
|
||||
<app-table :data="model.invoicE_MAP_GROUP" :columns="columns2" /> |
|
||||
</el-scrollbar> |
|
||||
</el-tab-pane> |
|
||||
<el-tab-pane label="invoicE_NOT_SETTLE" v-if="model.invoicE_NOT_SETTLE.length"> |
|
||||
<el-scrollbar> |
|
||||
<app-table :data="model.invoicE_NOT_SETTLE" :columns="columns3" /> |
|
||||
</el-scrollbar> |
|
||||
</el-tab-pane> |
|
||||
</el-tabs> |
|
||||
</el-col> |
|
||||
</el-row> |
|
||||
<template #footer> |
|
||||
<span class="dialog-footer"> |
|
||||
<el-button type="primary" @click="drawer=false"> 返回 </el-button> |
|
||||
<el-button |
|
||||
type="primary" |
|
||||
@click="dialogVisible = true" |
|
||||
v-if="model.adJ_DETAIL.length===0&&prop==='invbillNum'" |
|
||||
> |
|
||||
重开 |
|
||||
</el-button> |
|
||||
<el-dialog v-model="dialogVisible" title="发票调整明细" width="50%" :before-close="handleClose"> |
|
||||
<template #title> |
|
||||
<div style="display: flex; justify-content: space-between; align-items: center;"> |
|
||||
<span>发票调整明细</span> |
|
||||
<span> |
|
||||
<el-button type="primary" @click="innerVisible = true" style="margin-left: auto;">新建</el-button> |
|
||||
<el-button type="primary" @click="openImport = true" style="margin-left: 10px;">导入 </el-button> |
|
||||
<el-button type="primary" @click="deleteRow" style="margin-left: 10px;">删除</el-button> |
|
||||
<el-button type="primary" @click="dialogVisible = false" style="margin-left: 10px;">关闭</el-button> |
|
||||
</span> |
|
||||
</div> |
|
||||
</template> |
|
||||
<el-table :data="invoiceValue" @selection-change="handleSelectionChange"> |
|
||||
<el-table-column width="50" type="selection"> |
|
||||
<!-- <el-checkbox v-model="selectedRows" /> --> |
|
||||
</el-table-column> |
|
||||
<el-table-column property="oldInvBillNum" label="作废发票号" /> |
|
||||
<el-table-column property="invBillNum" label="发票号" /> |
|
||||
<el-table-column property="settleDate" label="下线日期" /> |
|
||||
<el-table-column property="invGroupNum" label="发票分组号" /> |
|
||||
<el-table-column property="lu" label="零件号" /> |
|
||||
<el-table-column property="pn" label="标识号" /> |
|
||||
<el-table-column property="qty" label="数量" /> |
|
||||
<el-table-column property="groupNum" label="结算分组" /> |
|
||||
</el-table> |
|
||||
<el-dialog v-model="innerVisible" width="45%" title="新建数据"> |
|
||||
<el-form :inline="true" :model="formInline" label-width="100px"> |
|
||||
<span> |
|
||||
<el-button type="primary" @click="submitForm">提交</el-button> |
|
||||
<el-button type="primary" @click="">下一页</el-button> |
|
||||
</span> |
|
||||
<el-form-item label="作废发票号"> |
|
||||
<el-input v-model="formInline.oldInvBillNum"></el-input> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="发票号"> |
|
||||
<el-input v-model.number="formInline.invBillNum " type="string"></el-input> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="下线日期"> |
|
||||
<el-input v-model.number="formInline.settleDate " type="string"></el-input> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="发票分组号"> |
|
||||
<el-input v-model.number="formInline.invGroupNum " type="string"></el-input> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="零件号"> |
|
||||
<el-input v-model.number="formInline.lu" type="string"></el-input> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="标识号"> |
|
||||
<el-input v-model.number="formInline.pn" type="string"></el-input> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="数量"> |
|
||||
<el-input v-model.number="formInline.qty" type="number"></el-input> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="结算分组"> |
|
||||
<el-input v-model.number="formInline.groupNum " type="string"></el-input> |
|
||||
</el-form-item> |
|
||||
</el-form> |
|
||||
</el-dialog> |
|
||||
<el-dialog v-model="openImport" width="30%"> |
|
||||
<app-form> |
|
||||
<div> |
|
||||
<el-form-item :label="$t('文件')" label-width="80px"> |
|
||||
<el-upload |
|
||||
ref="uploadRef" |
|
||||
class="upload" |
|
||||
drag |
|
||||
accept=".xlsx" |
|
||||
:auto-upload="false" |
|
||||
:on-change="handleChange" |
|
||||
> |
|
||||
<el-icon class="el-icon--upload"><ep-upload-filled /></el-icon> |
|
||||
</el-upload> |
|
||||
</el-form-item> |
|
||||
</div> |
|
||||
<el-button type="primary" @click="openImportHandler" style="margin-left: 10px;">确定</el-button> |
|
||||
</app-form> |
|
||||
</el-dialog> |
|
||||
<el-button type="primary" @click="dialogVisible = false" style="margin-left: 10px;">下一页</el-button> |
|
||||
</el-dialog> |
|
||||
</span> |
|
||||
</template> |
|
||||
</el-drawer>`, |
|
||||
styles: html` <style>
|
|
||||
.page-drawer .el-tab-pane { |
|
||||
width: 100%; |
|
||||
height: calc(100vh - 160px); |
|
||||
} |
|
||||
.page-drawer .el-tabs__content, |
|
||||
.page-drawer .el-scrollbar { |
|
||||
width: 100%; |
|
||||
height: calc(100vh - 160px - 40px); |
|
||||
} |
|
||||
</style>`, |
|
||||
setup() { |
setup() { |
||||
const fileList = ref([]); |
|
||||
// const load = async () => {};
|
|
||||
// const editFormModel = ref(null);
|
|
||||
// const editFormMode = ref(null);
|
|
||||
// const defaultImportModel = config.import?.schema ? schemaToModel(config.import.schema) : {};
|
|
||||
// const importModel = ref(defaultImportModel);
|
|
||||
const openImportHandler = async () => { |
|
||||
const url = "settleaccount/vmi/excel-to-json"; |
|
||||
const method = "POST"; |
|
||||
const formData = new FormData(); |
|
||||
if (config.query.schema.properties.businessType?.default) { |
|
||||
formData.append("businessType", config.query.schema.properties.businessType.default); |
|
||||
} |
|
||||
for (let i = 0; i < fileList.value.length; i++) { |
|
||||
formData.append(`files`, fileList.value[i].raw); |
|
||||
} |
|
||||
await post(url, formData, method); |
|
||||
}; |
|
||||
const formInline = reactive({ |
|
||||
oldInvBillNum: "", |
|
||||
invBillNum: "", |
|
||||
settleDate: "", |
|
||||
invGroupNum: "", |
|
||||
lu: "", |
|
||||
pn: "", |
|
||||
qty: null, |
|
||||
groupNum: "", |
|
||||
}); |
|
||||
//create
|
|
||||
const invoiceValue = ref([]); |
|
||||
const submitForm = () => { |
|
||||
const newFormInline = { ...formInline }; |
|
||||
invoiceValue.value.push(newFormInline); |
|
||||
Object.keys(formInline).forEach((key) => { |
|
||||
delete formInline[key]; |
|
||||
}); |
|
||||
innerVisible.value = false; |
|
||||
}; |
|
||||
//delete
|
|
||||
const selectedRows = ref([]); |
|
||||
const deleteRow = async () => { |
|
||||
const indexes = selectedRows.value.map((row) => invoiceValue.value.indexOf(row)); |
|
||||
indexes.forEach((index) => { |
|
||||
invoiceValue.value.splice(index, 10000000000); |
|
||||
}); |
|
||||
selectedRows.value = []; |
|
||||
}; |
|
||||
const innerVisible = ref(false); |
|
||||
const openImport = ref(false); |
|
||||
const dialogVisible = ref(false); |
|
||||
const handleClose = (done) => { |
|
||||
ElMessageBox.confirm("确认关闭") |
|
||||
.then(() => { |
|
||||
done(); |
|
||||
}) |
|
||||
.catch(() => {}); |
|
||||
}; |
|
||||
const config = useConfig(); |
const config = useConfig(); |
||||
const drawer = ref(false); |
const visable = ref(false); |
||||
const loading = ref(false); |
const data = ref(null); |
||||
const model = ref({ |
|
||||
invoicE_WAIT_DETAIL: [], |
|
||||
invoicE_MAP_GROUP: [], |
|
||||
invoicE_NOT_SETTLE: [], |
|
||||
adJ_DETAIL: [], |
|
||||
}); |
|
||||
const prop = ref(""); |
|
||||
const onCommand = async (item, rows) => { |
const onCommand = async (item, rows) => { |
||||
prop.value = item.path; |
data.value = { [item.path]: rows[0][item.path] }; |
||||
drawer.value = true; |
visable.value = true; |
||||
loading.value = true; |
console.log(item.path, item, rows); |
||||
const data = { [item.path]: rows[0][item.path] }; |
|
||||
const response = await request("settleaccount/invoice_service/detail-query", data, { method: "POST" }); |
|
||||
model.value = response.data; |
|
||||
loading.value = false; |
|
||||
}; |
|
||||
const columns1 = [ |
|
||||
{ |
|
||||
key: "version", |
|
||||
dataKey: "version", |
|
||||
title: "期间", |
|
||||
}, |
|
||||
{ |
|
||||
dataKey: "invbillNum", |
|
||||
title: "发票号", |
|
||||
}, |
|
||||
{ |
|
||||
dataKey: "invGroupNum", |
|
||||
title: "发票分组号", |
|
||||
}, |
|
||||
{ |
|
||||
dataKey: "lu", |
|
||||
title: "零件号", |
|
||||
}, |
|
||||
{ |
|
||||
dataKey: "price", |
|
||||
title: "单价", |
|
||||
}, |
|
||||
{ |
|
||||
dataKey: "qty", |
|
||||
title: "数量", |
|
||||
}, |
|
||||
{ |
|
||||
dataKey: "amt", |
|
||||
title: "金额", |
|
||||
}, |
|
||||
{ |
|
||||
dataKey: "bussiessType", |
|
||||
title: "业务分类", |
|
||||
}, |
|
||||
]; |
|
||||
const columns2 = [ |
|
||||
{ |
|
||||
dataKey: "version", |
|
||||
title: "期间", |
|
||||
}, |
|
||||
{ |
|
||||
dataKey: "invbillNum", |
|
||||
title: "发票号", |
|
||||
}, |
|
||||
{ |
|
||||
dataKey: "invGroupNum", |
|
||||
title: "发票分组号", |
|
||||
}, |
|
||||
{ |
|
||||
dataKey: "settleGroupNum", |
|
||||
title: "结算分组号", |
|
||||
}, |
|
||||
{ |
|
||||
dataKey: "amt", |
|
||||
title: "金额", |
|
||||
}, |
|
||||
]; |
|
||||
const columns3 = [ |
|
||||
{ |
|
||||
dataKey: "version", |
|
||||
title: "期间", |
|
||||
}, |
|
||||
{ |
|
||||
dataKey: "invGroupNum", |
|
||||
title: "发票分组号", |
|
||||
}, |
|
||||
{ |
|
||||
dataKey: "settleGroupNum", |
|
||||
title: "结算分组号", |
|
||||
}, |
|
||||
{ |
|
||||
dataKey: "lu", |
|
||||
title: "可结算分组号", |
|
||||
}, |
|
||||
{ |
|
||||
dataKey: "lu1", |
|
||||
title: "不可结算分组号", |
|
||||
}, |
|
||||
]; |
|
||||
return { |
|
||||
config, |
|
||||
onCommand, |
|
||||
drawer, |
|
||||
loading, |
|
||||
model, |
|
||||
columns1, |
|
||||
columns2, |
|
||||
columns3, |
|
||||
innerVisible, |
|
||||
dialogVisible, |
|
||||
handleClose, |
|
||||
prop, |
|
||||
formInline, |
|
||||
submitForm, |
|
||||
invoiceValue, |
|
||||
deleteRow, |
|
||||
selectedRows, |
|
||||
openImport, |
|
||||
openImportHandler, |
|
||||
}; |
}; |
||||
|
return { config, onCommand, visable, data }; |
||||
}, |
}, |
||||
}; |
}; |
||||
|
@ -1,16 +1,22 @@ |
|||||
import AppList from "../../../components/list/index.js"; |
import AppList from "../../../components/list/index.js"; |
||||
import html from "html"; |
import html from "html"; |
||||
import useConfig from "../../../models/bbac-edi-se-compare.js"; |
import useConfig from "../../../models/bbac-edi-se-compare.js"; |
||||
|
import { ref, onMounted, onUnmounted } from "vue"; |
||||
|
|
||||
export default { |
export default { |
||||
components: { AppList }, |
components: { AppList }, |
||||
template: html`<app-list :config="config" @command="onCommand" />`, |
template: html`<app-list ref="appListRef" :config="config" @command="onCommand" />`, |
||||
setup() { |
setup() { |
||||
const config = useConfig(); |
const config = useConfig(); |
||||
config.query.schema.title = "EDI与发运数据"; |
config.query.schema.title = "EDI与发运数据"; |
||||
const onCommand = async (item, rows) => { |
const onCommand = async (item, rows) => { |
||||
console.log(item.path, item, rows); |
console.log(item.path, item, rows); |
||||
}; |
}; |
||||
return { config, onCommand }; |
//
|
||||
|
const appListRef = ref(null); |
||||
|
const event = "SaSeCompare"; |
||||
|
onMounted(() => PubSub.subscribe(event, async () => await appListRef.value.load())); |
||||
|
onUnmounted(() => PubSub.unsubscribe(event)); |
||||
|
return { config, onCommand, appListRef }; |
||||
}, |
}, |
||||
}; |
}; |
||||
|
@ -1,16 +1,22 @@ |
|||||
import AppList from "../../../components/list/index.js"; |
import AppList from "../../../components/list/index.js"; |
||||
import html from "html"; |
import html from "html"; |
||||
import useConfig from "../../../models/job-service.js"; |
import useConfig from "../../../models/job-service.js"; |
||||
|
import { ref, onMounted, onUnmounted } from "vue"; |
||||
|
|
||||
export default { |
export default { |
||||
components: { AppList }, |
components: { AppList }, |
||||
template: html`<app-list :config="config" @command="onCommand" />`, |
template: html`<app-list ref="appListRef" :config="config" @command="onCommand" />`, |
||||
setup() { |
setup() { |
||||
const config = useConfig(); |
const config = useConfig(); |
||||
config.query.schema.title = "EDI、发运与结算"; |
config.query.schema.title = "EDI、发运与结算"; |
||||
const onCommand = async (item, rows) => { |
const onCommand = async (item, rows) => { |
||||
console.log(item.path, item, rows); |
console.log(item.path, item, rows); |
||||
}; |
}; |
||||
return { config, onCommand }; |
//
|
||||
|
const appListRef = ref(null); |
||||
|
const event = "SaSeCompare"; |
||||
|
onMounted(() => PubSub.subscribe(event, async () => await appListRef.value.load())); |
||||
|
onUnmounted(() => PubSub.unsubscribe(event)); |
||||
|
return { config, onCommand, appListRef }; |
||||
}, |
}, |
||||
}; |
}; |
||||
|
@ -1,16 +0,0 @@ |
|||||
import AppList from "../../../components/list/index.js"; |
|
||||
import html from "html"; |
|
||||
import useConfig from "../../../models/job-service.js"; |
|
||||
|
|
||||
export default { |
|
||||
components: { AppList }, |
|
||||
template: html`<app-list :config="config" @command="onCommand" />`, |
|
||||
setup() { |
|
||||
const config = useConfig(); |
|
||||
config.query.schema.title = "发运与结算数据二次"; |
|
||||
const onCommand = async (item, rows) => { |
|
||||
console.log(item.path, item, rows); |
|
||||
}; |
|
||||
return { config, onCommand }; |
|
||||
}, |
|
||||
}; |
|
@ -1,16 +0,0 @@ |
|||||
import AppList from "../../../components/list/index.js"; |
|
||||
import html from "html"; |
|
||||
import useConfig from "../../../models/job-service.js"; |
|
||||
|
|
||||
export default { |
|
||||
components: { AppList }, |
|
||||
template: html`<app-list :config="config" @command="onCommand" />`, |
|
||||
setup() { |
|
||||
const config = useConfig(); |
|
||||
config.query.schema.title = "买单件发运与结算数据三次"; |
|
||||
const onCommand = async (item, rows) => { |
|
||||
console.log(item.path, item, rows); |
|
||||
}; |
|
||||
return { config, onCommand }; |
|
||||
}, |
|
||||
}; |
|
@ -1,15 +1,23 @@ |
|||||
import AppList from "../../../components/list/index.js"; |
import AppList from "../../../components/list/index.js"; |
||||
import html from "html"; |
import html from "html"; |
||||
import useConfig from "../../../models/jis-bbac/settlement/bbac_ba_service.js"; |
import { ref } from "vue"; |
||||
|
import useConfig from "../../../models/pub_ba_service.js"; |
||||
|
import AppCheck from "../../_check.js"; |
||||
|
|
||||
export default { |
export default { |
||||
components: { AppList }, |
components: { AppList, AppCheck }, |
||||
template: html`<app-list :config="config" @command="onCommand" />`, |
template: html`<app-list :config="config" @command="onCommand" />
|
||||
|
<app-check v-if="visable" v-model="visable" :data="data" :isBusiness="true" />`,
|
||||
setup() { |
setup() { |
||||
const config = useConfig(); |
const config = useConfig(); |
||||
|
const visable = ref(false); |
||||
|
const data = ref(null); |
||||
const onCommand = async (item, rows) => { |
const onCommand = async (item, rows) => { |
||||
|
data.value = { [item.path]: rows[0][item.path] }; |
||||
|
visable.value = true; |
||||
console.log(item.path, item, rows); |
console.log(item.path, item, rows); |
||||
}; |
}; |
||||
return { config, onCommand }; |
config.query.schema.properties.businessType.default = "JisBBAC"; |
||||
|
return { config, onCommand, visable, data }; |
||||
}, |
}, |
||||
}; |
}; |
||||
|
@ -1,16 +1,22 @@ |
|||||
import AppList from "../../../components/list/index.js"; |
import AppList from "../../../components/list/index.js"; |
||||
import html from "html"; |
import html from "html"; |
||||
import useConfig from "../../../models/job-service.js"; |
import useConfig from "../../../models/job-service.js"; |
||||
|
import { ref, onMounted, onUnmounted } from "vue"; |
||||
|
|
||||
export default { |
export default { |
||||
components: { AppList }, |
components: { AppList }, |
||||
template: html`<app-list :config="config" @command="onCommand" />`, |
template: html`<app-list ref="appListRef" :config="config" @command="onCommand" />`, |
||||
setup() { |
setup() { |
||||
const config = useConfig(); |
const config = useConfig(); |
||||
config.query.schema.title = "EDI、发运与结算"; |
config.query.schema.title = "EDI、发运与结算"; |
||||
const onCommand = async (item, rows) => { |
const onCommand = async (item, rows) => { |
||||
console.log(item.path, item, rows); |
console.log(item.path, item, rows); |
||||
}; |
}; |
||||
return { config, onCommand }; |
//
|
||||
|
const appListRef = ref(null); |
||||
|
const event = "SaSeCompare"; |
||||
|
onMounted(() => PubSub.subscribe(event, async () => await appListRef.value.load())); |
||||
|
onUnmounted(() => PubSub.unsubscribe(event)); |
||||
|
return { config, onCommand, appListRef }; |
||||
}, |
}, |
||||
}; |
}; |
||||
|
@ -1,16 +1,22 @@ |
|||||
import AppList from "../../../components/list/index.js"; |
import AppList from "../../../components/list/index.js"; |
||||
import html from "html"; |
import html from "html"; |
||||
import useConfig from "../../../models/hbpo-edi-se-compare.js"; |
import useConfig from "../../../models/hbpo-edi-se-compare.js"; |
||||
|
import { ref, onMounted, onUnmounted } from "vue"; |
||||
|
|
||||
export default { |
export default { |
||||
components: { AppList }, |
components: { AppList }, |
||||
template: html`<app-list :config="config" @command="onCommand" />`, |
template: html`<app-list ref="appListRef" :config="config" @command="onCommand" />`, |
||||
setup() { |
setup() { |
||||
const config = useConfig(); |
const config = useConfig(); |
||||
config.query.schema.title = "EDI与发运数据"; |
config.query.schema.title = "EDI与发运数据"; |
||||
const onCommand = async (item, rows) => { |
const onCommand = async (item, rows) => { |
||||
console.log(item.path, item, rows); |
console.log(item.path, item, rows); |
||||
}; |
}; |
||||
return { config, onCommand }; |
//
|
||||
|
const appListRef = ref(null); |
||||
|
const event = "SaSeCompare"; |
||||
|
onMounted(() => PubSub.subscribe(event, async () => await appListRef.value.load())); |
||||
|
onUnmounted(() => PubSub.unsubscribe(event)); |
||||
|
return { config, onCommand, appListRef }; |
||||
}, |
}, |
||||
}; |
}; |
||||
|
@ -1,16 +0,0 @@ |
|||||
import AppList from "../../../components/list/index.js"; |
|
||||
import html from "html"; |
|
||||
import useConfig from "../../../models/job-service.js"; |
|
||||
|
|
||||
export default { |
|
||||
components: { AppList }, |
|
||||
template: html`<app-list :config="config" @command="onCommand" />`, |
|
||||
setup() { |
|
||||
const config = useConfig(); |
|
||||
config.query.schema.title = "发运与结算数据二次"; |
|
||||
const onCommand = async (item, rows) => { |
|
||||
console.log(item.path, item, rows); |
|
||||
}; |
|
||||
return { config, onCommand }; |
|
||||
}, |
|
||||
}; |
|
@ -1,15 +1,23 @@ |
|||||
import AppList from "../../../components/list/index.js"; |
import AppList from "../../../components/list/index.js"; |
||||
import html from "html"; |
import html from "html"; |
||||
import useConfig from "../../../models/jis-hbpo/settlement/hbpo_ba_service.js"; |
import { ref } from "vue"; |
||||
|
import useConfig from "../../../models/pub_ba_service.js"; |
||||
|
import AppCheck from "../../_check.js"; |
||||
|
|
||||
export default { |
export default { |
||||
components: { AppList }, |
components: { AppList, AppCheck }, |
||||
template: html`<app-list :config="config" @command="onCommand" />`, |
template: html`<app-list :config="config" @command="onCommand" />
|
||||
|
<app-check v-if="visable" v-model="visable" :data="data" :isBusiness="true" />`,
|
||||
setup() { |
setup() { |
||||
const config = useConfig(); |
const config = useConfig(); |
||||
|
const visable = ref(false); |
||||
|
const data = ref(null); |
||||
const onCommand = async (item, rows) => { |
const onCommand = async (item, rows) => { |
||||
|
data.value = { [item.path]: rows[0][item.path] }; |
||||
|
visable.value = true; |
||||
console.log(item.path, item, rows); |
console.log(item.path, item, rows); |
||||
}; |
}; |
||||
return { config, onCommand }; |
config.query.schema.properties.businessType.default = "JisHBPO"; |
||||
|
return { config, onCommand, visable, data }; |
||||
}, |
}, |
||||
}; |
}; |
||||
|
@ -1,15 +1,23 @@ |
|||||
import AppList from "../../../../components/list/index.js"; |
import AppList from "../../../../components/list/index.js"; |
||||
import html from "html"; |
import html from "html"; |
||||
|
import { ref } from "vue"; |
||||
import useConfig from "../../../../models/pub_ba_service.js"; |
import useConfig from "../../../../models/pub_ba_service.js"; |
||||
|
import AppCheck from "../../../_check.js"; |
||||
|
|
||||
export default { |
export default { |
||||
components: { AppList }, |
components: { AppList, AppCheck }, |
||||
template: html`<app-list :config="config" @command="onCommand" />`, |
template: html`<app-list :config="config" @command="onCommand" />
|
||||
|
<app-check v-if="visable" v-model="visable" :data="data" :isBusiness="true" />`,
|
||||
setup() { |
setup() { |
||||
const config = useConfig(); |
const config = useConfig(); |
||||
|
const visable = ref(false); |
||||
|
const data = ref(null); |
||||
const onCommand = async (item, rows) => { |
const onCommand = async (item, rows) => { |
||||
|
data.value = { [item.path]: rows[0][item.path] }; |
||||
|
visable.value = true; |
||||
console.log(item.path, item, rows); |
console.log(item.path, item, rows); |
||||
}; |
}; |
||||
return { config, onCommand }; |
config.query.schema.properties.businessType.default = "ZhiGongJianBBAC"; |
||||
|
return { config, onCommand, visable, data }; |
||||
}, |
}, |
||||
}; |
}; |
@ -1,15 +1,23 @@ |
|||||
import AppList from "../../../../components/list/index.js"; |
import AppList from "../../../../components/list/index.js"; |
||||
import html from "html"; |
import html from "html"; |
||||
|
import { ref } from "vue"; |
||||
import useConfig from "../../../../models/pub_ba_service.js"; |
import useConfig from "../../../../models/pub_ba_service.js"; |
||||
|
import AppCheck from "../../../_check.js"; |
||||
|
|
||||
export default { |
export default { |
||||
components: { AppList }, |
components: { AppList, AppCheck }, |
||||
template: html`<app-list :config="config" @command="onCommand" />`, |
template: html`<app-list :config="config" @command="onCommand" />
|
||||
|
<app-check v-if="visable" v-model="visable" :data="data" :isBusiness="true" />`,
|
||||
setup() { |
setup() { |
||||
const config = useConfig(); |
const config = useConfig(); |
||||
|
const visable = ref(false); |
||||
|
const data = ref(null); |
||||
const onCommand = async (item, rows) => { |
const onCommand = async (item, rows) => { |
||||
|
data.value = { [item.path]: rows[0][item.path] }; |
||||
|
visable.value = true; |
||||
console.log(item.path, item, rows); |
console.log(item.path, item, rows); |
||||
}; |
}; |
||||
return { config, onCommand }; |
config.query.schema.properties.businessType.default = "ZhiGongJianHBPO"; |
||||
|
return { config, onCommand, visable, data }; |
||||
}, |
}, |
||||
}; |
}; |
||||
|
@ -1,15 +1,23 @@ |
|||||
import AppList from "../../../../components/list/index.js"; |
import AppList from "../../../../components/list/index.js"; |
||||
import html from "html"; |
import html from "html"; |
||||
|
import { ref } from "vue"; |
||||
import useConfig from "../../../../models/pub_ba_service.js"; |
import useConfig from "../../../../models/pub_ba_service.js"; |
||||
|
import AppCheck from "../../../_check.js"; |
||||
|
|
||||
export default { |
export default { |
||||
components: { AppList }, |
components: { AppList, AppCheck }, |
||||
template: html`<app-list :config="config" @command="onCommand" />`, |
template: html`<app-list :config="config" @command="onCommand" />
|
||||
|
<app-check v-if="visable" v-model="visable" :data="data" :isBusiness="true" />`,
|
||||
setup() { |
setup() { |
||||
const config = useConfig(); |
const config = useConfig(); |
||||
|
const visable = ref(false); |
||||
|
const data = ref(null); |
||||
const onCommand = async (item, rows) => { |
const onCommand = async (item, rows) => { |
||||
|
data.value = { [item.path]: rows[0][item.path] }; |
||||
|
visable.value = true; |
||||
console.log(item.path, item, rows); |
console.log(item.path, item, rows); |
||||
}; |
}; |
||||
return { config, onCommand }; |
config.query.schema.properties.businessType.default = "MaiDanJianHBPO"; |
||||
|
return { config, onCommand, visable, data }; |
||||
}, |
}, |
||||
}; |
}; |
Loading…
Reference in new issue