学 赵
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 html from "html"; |
|||
import { ref } from "vue"; |
|||
import useConfig from "../../../models/pub_ba_service.js"; |
|||
import AppCheck from "../../_check.js"; |
|||
|
|||
export default { |
|||
components: { AppList }, |
|||
template: html`<app-list :config="config" @command="onCommand" />`, |
|||
components: { AppList, AppCheck }, |
|||
template: html`<app-list :config="config" @command="onCommand" />
|
|||
<app-check v-if="visable" v-model="visable" :data="data" :isBusiness="true" />`,
|
|||
setup() { |
|||
const config = useConfig(); |
|||
const visable = ref(false); |
|||
const data = ref(null); |
|||
const onCommand = async (item, rows) => { |
|||
data.value = { [item.path]: rows[0][item.path] }; |
|||
visable.value = true; |
|||
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"; |
|||
|
|||
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 html from "html"; |
|||
import { ref } from "vue"; |
|||
import useConfig from "../../../models/pub_ba_service.js"; |
|||
import AppCheck from "../../_check.js"; |
|||
|
|||
export default { |
|||
components: { AppList }, |
|||
template: html`<app-list :config="config" @command="onCommand" />`, |
|||
components: { AppList, AppCheck }, |
|||
template: html`<app-list :config="config" @command="onCommand" />
|
|||
<app-check v-if="visable" v-model="visable" :data="data" :isBusiness="true" />`,
|
|||
setup() { |
|||
const config = useConfig(); |
|||
const visable = ref(false); |
|||
const data = ref(null); |
|||
const onCommand = async (item, rows) => { |
|||
data.value = { [item.path]: rows[0][item.path] }; |
|||
visable.value = true; |
|||
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 AppForm from "../../../components/form/index.js"; |
|||
import html from "html"; |
|||
import { reactive, ref } from "vue"; |
|||
import { ref } from "vue"; |
|||
import useConfig from "../../../models/invoice/invoice_map_group.js"; |
|||
import request from "../../../request/index.js"; |
|||
import AppTable from "../../components/table/index.js"; |
|||
import { ElMessageBox } from "element-plus"; |
|||
import { post } from "../../../request/index.js"; |
|||
import AppCheck from "../_check.js"; |
|||
|
|||
export default { |
|||
components: { AppList, AppTable }, |
|||
components: { AppList, AppForm, AppCheck }, |
|||
template: html`<app-list :config="config" @command="onCommand" />
|
|||
<el-drawer v-model="drawer" destroy-on-close size="50%" class="page-drawer"> |
|||
<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>`, |
|||
<app-check v-if="visable" v-model="visable" :data="data" />`,
|
|||
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 drawer = ref(false); |
|||
const loading = ref(false); |
|||
const model = ref({ |
|||
invoicE_WAIT_DETAIL: [], |
|||
invoicE_MAP_GROUP: [], |
|||
invoicE_NOT_SETTLE: [], |
|||
adJ_DETAIL: [], |
|||
}); |
|||
const prop = ref(""); |
|||
const visable = ref(false); |
|||
const data = ref(null); |
|||
const onCommand = async (item, rows) => { |
|||
prop.value = item.path; |
|||
drawer.value = true; |
|||
loading.value = true; |
|||
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, |
|||
data.value = { [item.path]: rows[0][item.path] }; |
|||
visable.value = true; |
|||
console.log(item.path, item, rows); |
|||
}; |
|||
return { config, onCommand, visable, data }; |
|||
}, |
|||
}; |
|||
|
@ -1,16 +1,22 @@ |
|||
import AppList from "../../../components/list/index.js"; |
|||
import html from "html"; |
|||
import useConfig from "../../../models/bbac-edi-se-compare.js"; |
|||
import { ref, onMounted, onUnmounted } from "vue"; |
|||
|
|||
export default { |
|||
components: { AppList }, |
|||
template: html`<app-list :config="config" @command="onCommand" />`, |
|||
template: html`<app-list ref="appListRef" :config="config" @command="onCommand" />`, |
|||
setup() { |
|||
const config = useConfig(); |
|||
config.query.schema.title = "EDI与发运数据"; |
|||
const onCommand = async (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 html from "html"; |
|||
import useConfig from "../../../models/job-service.js"; |
|||
import { ref, onMounted, onUnmounted } from "vue"; |
|||
|
|||
export default { |
|||
components: { AppList }, |
|||
template: html`<app-list :config="config" @command="onCommand" />`, |
|||
template: html`<app-list ref="appListRef" :config="config" @command="onCommand" />`, |
|||
setup() { |
|||
const config = useConfig(); |
|||
config.query.schema.title = "EDI、发运与结算"; |
|||
const onCommand = async (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 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 { |
|||
components: { AppList }, |
|||
template: html`<app-list :config="config" @command="onCommand" />`, |
|||
components: { AppList, AppCheck }, |
|||
template: html`<app-list :config="config" @command="onCommand" />
|
|||
<app-check v-if="visable" v-model="visable" :data="data" :isBusiness="true" />`,
|
|||
setup() { |
|||
const config = useConfig(); |
|||
const visable = ref(false); |
|||
const data = ref(null); |
|||
const onCommand = async (item, rows) => { |
|||
data.value = { [item.path]: rows[0][item.path] }; |
|||
visable.value = true; |
|||
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 html from "html"; |
|||
import useConfig from "../../../models/job-service.js"; |
|||
import { ref, onMounted, onUnmounted } from "vue"; |
|||
|
|||
export default { |
|||
components: { AppList }, |
|||
template: html`<app-list :config="config" @command="onCommand" />`, |
|||
template: html`<app-list ref="appListRef" :config="config" @command="onCommand" />`, |
|||
setup() { |
|||
const config = useConfig(); |
|||
config.query.schema.title = "EDI、发运与结算"; |
|||
const onCommand = async (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 html from "html"; |
|||
import useConfig from "../../../models/hbpo-edi-se-compare.js"; |
|||
import { ref, onMounted, onUnmounted } from "vue"; |
|||
|
|||
export default { |
|||
components: { AppList }, |
|||
template: html`<app-list :config="config" @command="onCommand" />`, |
|||
template: html`<app-list ref="appListRef" :config="config" @command="onCommand" />`, |
|||
setup() { |
|||
const config = useConfig(); |
|||
config.query.schema.title = "EDI与发运数据"; |
|||
const onCommand = async (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 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 { |
|||
components: { AppList }, |
|||
template: html`<app-list :config="config" @command="onCommand" />`, |
|||
components: { AppList, AppCheck }, |
|||
template: html`<app-list :config="config" @command="onCommand" />
|
|||
<app-check v-if="visable" v-model="visable" :data="data" :isBusiness="true" />`,
|
|||
setup() { |
|||
const config = useConfig(); |
|||
const visable = ref(false); |
|||
const data = ref(null); |
|||
const onCommand = async (item, rows) => { |
|||
data.value = { [item.path]: rows[0][item.path] }; |
|||
visable.value = true; |
|||
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 html from "html"; |
|||
import { ref } from "vue"; |
|||
import useConfig from "../../../../models/pub_ba_service.js"; |
|||
import AppCheck from "../../../_check.js"; |
|||
|
|||
export default { |
|||
components: { AppList }, |
|||
template: html`<app-list :config="config" @command="onCommand" />`, |
|||
components: { AppList, AppCheck }, |
|||
template: html`<app-list :config="config" @command="onCommand" />
|
|||
<app-check v-if="visable" v-model="visable" :data="data" :isBusiness="true" />`,
|
|||
setup() { |
|||
const config = useConfig(); |
|||
const visable = ref(false); |
|||
const data = ref(null); |
|||
const onCommand = async (item, rows) => { |
|||
data.value = { [item.path]: rows[0][item.path] }; |
|||
visable.value = true; |
|||
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 html from "html"; |
|||
import { ref } from "vue"; |
|||
import useConfig from "../../../../models/pub_ba_service.js"; |
|||
import AppCheck from "../../../_check.js"; |
|||
|
|||
export default { |
|||
components: { AppList }, |
|||
template: html`<app-list :config="config" @command="onCommand" />`, |
|||
components: { AppList, AppCheck }, |
|||
template: html`<app-list :config="config" @command="onCommand" />
|
|||
<app-check v-if="visable" v-model="visable" :data="data" :isBusiness="true" />`,
|
|||
setup() { |
|||
const config = useConfig(); |
|||
const visable = ref(false); |
|||
const data = ref(null); |
|||
const onCommand = async (item, rows) => { |
|||
data.value = { [item.path]: rows[0][item.path] }; |
|||
visable.value = true; |
|||
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 html from "html"; |
|||
import { ref } from "vue"; |
|||
import useConfig from "../../../../models/pub_ba_service.js"; |
|||
import AppCheck from "../../../_check.js"; |
|||
|
|||
export default { |
|||
components: { AppList }, |
|||
template: html`<app-list :config="config" @command="onCommand" />`, |
|||
components: { AppList, AppCheck }, |
|||
template: html`<app-list :config="config" @command="onCommand" />
|
|||
<app-check v-if="visable" v-model="visable" :data="data" :isBusiness="true" />`,
|
|||
setup() { |
|||
const config = useConfig(); |
|||
const visable = ref(false); |
|||
const data = ref(null); |
|||
const onCommand = async (item, rows) => { |
|||
data.value = { [item.path]: rows[0][item.path] }; |
|||
visable.value = true; |
|||
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