This commit is contained in:
parent
2ae6e8e0f6
commit
0149f4b10b
|
@ -221,5 +221,6 @@
|
|||
"commentTranslate.multiLineMerge": true,
|
||||
"vue.server.hybridMode": true,
|
||||
"typescript.tsdk": "node_modules/typescript/lib",
|
||||
"svn.ignoreMissingSvnWarning": true
|
||||
"svn.ignoreMissingSvnWarning": true,
|
||||
"vue3snippets.enable-compile-vue-file-on-did-save-code": true
|
||||
}
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
```shell
|
||||
generate-api --swagger_url=http://127.0.0.1:4523/export/openapi/2?version=3.0 --template ./resource/apiDefinitions.ejs --output_dir ./resource --type path --prefix_to_filter /
|
||||
```
|
|
@ -1,4 +1,3 @@
|
|||
//
|
||||
import type { BodyOptions, QueryOptions } from './global.d';
|
||||
|
||||
import { http } from './request/index';
|
||||
|
@ -19,6 +18,9 @@ export default {
|
|||
get_export: (data?: QueryOptions) =>
|
||||
http.get('/app/meeting/list/export', data),
|
||||
},
|
||||
/** 协同办公/会议管理 门户获取会议数据 */
|
||||
get_getFundingSource: (data?: QueryOptions) =>
|
||||
http.get('/app/meeting/getFundingSource', data),
|
||||
},
|
||||
tysq: {
|
||||
zzjg: {
|
||||
|
@ -37,11 +39,11 @@ export default {
|
|||
/** 协同办公/字典表 字典类型保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/dictType/save', data),
|
||||
/** 协同办公/字典表 字典类型删除 */
|
||||
post_delete: (data?: BodyOptions) =>
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/dictType/deletes', data),
|
||||
},
|
||||
uaa: {
|
||||
/** 用户中心 用户登陆 Copy */
|
||||
/** 用户中心 用户登陆 */
|
||||
post_validateAccount: (data?: BodyOptions) =>
|
||||
http.post('/uc/uaa/validateAccount', data),
|
||||
},
|
||||
|
@ -147,23 +149,24 @@ export default {
|
|||
post_save: (data?: BodyOptions) => http.post('/app/ccsq/save', data),
|
||||
/** 协同办公/出差申请 申请单删除 */
|
||||
post_deletes: (data?: BodyOptions) => http.post('/app/ccsq/deletes', data),
|
||||
/** 协同办公/出差申请 出差送审、审核 */
|
||||
post_audit: (data?: BodyOptions) => http.post('/app/ccsq/audit', data),
|
||||
/** 协同办公/出差申请 退回 */
|
||||
post_turnTask: (data?: BodyOptions) =>
|
||||
http.post('/app/ccsq/turnTask', data),
|
||||
post_rollback: (data?: BodyOptions) =>
|
||||
http.post('/app/ccsq/rollback', data),
|
||||
/** 协同办公/出差申请 启动流程 */
|
||||
post_startWorkFlow: (data?: BodyOptions) =>
|
||||
http.post('/app/ccsq/startWorkFlow', data),
|
||||
/** 协同办公/出差申请 送审 */
|
||||
/** 协同办公/出差申请 审核 */
|
||||
post_submit: (data?: BodyOptions) => http.post('/app/ccsq/submit', data),
|
||||
/** 协同办公/出差申请 待办 */
|
||||
get_toDoPage: (data?: QueryOptions) => http.get('/app/ccsq/toDoPage', data),
|
||||
/** 协同办公/出差申请 已办 */
|
||||
get_donePage: (data?: QueryOptions) => http.get('/app/ccsq/donePage', data),
|
||||
/** 协同办公/出差申请 获取可退回节点信息 */
|
||||
get_getBackNode: (data?: QueryOptions) =>
|
||||
http.get('/app/ccsq/getBackNode', data),
|
||||
/** 协同办公/出差申请 查询流程节点 */
|
||||
get_getFlowNodeUserConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/ccsq/getFlowNodeUserConfig', data),
|
||||
/** 协同办公/出差申请 下一审核节点 */
|
||||
post_getNextNodeUserConfig: (data?: BodyOptions) =>
|
||||
http.post('/app/ccsq/getNextNodeUserConfig', data),
|
||||
},
|
||||
orderfood: {
|
||||
/** 协同办公/订餐管理/订餐 订餐加载接口 */
|
||||
|
@ -179,7 +182,7 @@ export default {
|
|||
http.post('/app/orderfood/assistCancel', data),
|
||||
},
|
||||
orderfoods: {
|
||||
/** 协同办公/订餐管理/汇总 部门结算汇总 */
|
||||
/** 协同办公/订餐管理/汇总 单位订餐汇总 */
|
||||
get_departmentSummary: (data?: QueryOptions) =>
|
||||
http.get('/app/orderfoods/departmentSummary', data),
|
||||
/** 协同办公/订餐管理/汇总 订餐汇总 */
|
||||
|
@ -199,7 +202,7 @@ export default {
|
|||
http.get('/app/orderfoods/personalSummary/export', data),
|
||||
},
|
||||
departmentSummary: {
|
||||
/** 协同办公/订餐管理/汇总 部门结算汇总导出 */
|
||||
/** 协同办公/订餐管理/汇总 单位订餐汇总导出 */
|
||||
get_export: (data?: QueryOptions) =>
|
||||
http.get('/app/orderfoods/departmentSummary/export', data),
|
||||
},
|
||||
|
@ -288,6 +291,7 @@ export default {
|
|||
http.post('/app/addressor/saveBatch', data),
|
||||
/** 协同办公/会议管理/发言人 发言人保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/addressor/save', data),
|
||||
/** 协同办公/会议管理/发言人 删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/addressor/deletes', data),
|
||||
},
|
||||
|
@ -298,6 +302,7 @@ export default {
|
|||
/** 协同办公/办公用品/办公用品清单 批量保存 */
|
||||
post_saveBatch: (data?: BodyOptions) =>
|
||||
http.post('/app/officeSuppliesList/saveBatch', data),
|
||||
/** 协同办公/办公用品/办公用品清单 删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/officeSuppliesList/deletes', data),
|
||||
},
|
||||
|
@ -305,6 +310,20 @@ export default {
|
|||
/** 协同办公/办公用品 采购汇总 */
|
||||
get_list: (data?: QueryOptions) =>
|
||||
http.get('/app/officeSuppliesApplySum/list', data),
|
||||
/** 协同办公/办公用品 结算清单 */
|
||||
get_finalStatement: (data?: QueryOptions) =>
|
||||
http.get('/app/officeSuppliesApplySum/finalStatement', data),
|
||||
/** 协同办公/办公用品 单位结算清单 */
|
||||
get_unitFinalStatement: (data?: QueryOptions) =>
|
||||
http.get('/app/officeSuppliesApplySum/unitFinalStatement', data),
|
||||
finalStatement: {
|
||||
/** 协同办公/办公用品 结算清单导出 */
|
||||
get_export: (data?: QueryOptions) =>
|
||||
http.get('/app/officeSuppliesApplySum/finalStatement/export', data),
|
||||
},
|
||||
/** 协同办公/办公用品 结算清单结算操作 */
|
||||
post_balance: (data?: BodyOptions) =>
|
||||
http.post('/app/officeSuppliesApplySum/balance', data),
|
||||
},
|
||||
autoOrderfoodPeoples: {
|
||||
/** 协同办公/订餐管理/自动订餐人员管理 分页查询 */
|
||||
|
@ -313,6 +332,7 @@ export default {
|
|||
/** 协同办公/订餐管理/自动订餐人员管理 批量保存 */
|
||||
post_saveBatch: (data?: BodyOptions) =>
|
||||
http.post('/app/autoOrderfoodPeoples/saveBatch', data),
|
||||
/** 协同办公/订餐管理/自动订餐人员管理 删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/autoOrderfoodPeoples/deletes', data),
|
||||
},
|
||||
|
@ -350,11 +370,17 @@ export default {
|
|||
/** 合同系统/申报 合同申报基本信息保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/sbCtrBasePt/save', data),
|
||||
/** 合同系统/申报 合同申报基本信息删除 */
|
||||
get_deletes: (data?: QueryOptions) =>
|
||||
http.get('/app/sbCtrBasePt/deletes', data),
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/sbCtrBasePt/deletes', data),
|
||||
/** 合同系统/申报 获取资金渠道 */
|
||||
get_getFundingSource: (data?: QueryOptions) =>
|
||||
http.get('/app/sbCtrBasePt/getFundingSource', data),
|
||||
/** 合同系统/申报 提交 */
|
||||
post_submit: (data?: BodyOptions) =>
|
||||
http.post('/app/sbCtrBasePt/submit', data),
|
||||
/** 合同系统/申报 退回 */
|
||||
post_rollback: (data?: BodyOptions) =>
|
||||
http.post('/app/sbCtrBasePt/rollback', data),
|
||||
},
|
||||
contractBaseInfo: {
|
||||
/** 合同系统/立项 合同立项保存 */
|
||||
|
@ -447,6 +473,24 @@ export default {
|
|||
/** 合同系统/履行/履行提示/合同付款 保存付款申请 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/contractPayment/save', data),
|
||||
/** 合同系统/履行/履行提示/合同付款 查询流程未配置人员节点 */
|
||||
get_getFlowNodeUserConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/contractPayment/getFlowNodeUserConfig', data),
|
||||
/** 合同系统/履行/履行提示/合同付款 送审 */
|
||||
post_startWorkFlow: (data?: BodyOptions) =>
|
||||
http.post('/app/contractPayment/startWorkFlow', data),
|
||||
/** 合同系统/履行/履行提示/合同付款 审核通过 */
|
||||
post_submit: (data?: BodyOptions) =>
|
||||
http.post('/app/contractPayment/submit', data),
|
||||
/** 合同系统/履行/履行提示/合同付款 退回 */
|
||||
post_rollback: (data?: BodyOptions) =>
|
||||
http.post('/app/contractPayment/rollback', data),
|
||||
/** 合同系统/履行/履行提示/合同付款 待审核 */
|
||||
get_toDoPage: (data?: QueryOptions) =>
|
||||
http.get('/app/contractPayment/toDoPage', data),
|
||||
/** 合同系统/履行/履行提示/合同付款 已审核 */
|
||||
get_donePage: (data?: QueryOptions) =>
|
||||
http.get('/app/contractPayment/donePage', data),
|
||||
},
|
||||
selectMerchantsBasicInfo: {
|
||||
/** 合同系统/选商 分页查询 */
|
||||
|
@ -467,6 +511,18 @@ export default {
|
|||
/** 合同系统/选商 退回 */
|
||||
post_rollback: (data?: BodyOptions) =>
|
||||
http.post('/app/selectMerchantsBasicInfo/rollback', data),
|
||||
/** 合同系统/选商废除 选商废除(弃用) */
|
||||
post_abolish: (data?: BodyOptions) =>
|
||||
http.post('/app/selectMerchantsBasicInfo/abolish', data),
|
||||
/** 合同系统/选商废除 选商废除(开始节点提交,非待办提交) */
|
||||
post_abolishFlowStart: (data?: BodyOptions) =>
|
||||
http.post('/app/selectMerchantsBasicInfo/abolishFlowStart', data),
|
||||
/** 合同系统/选商废除 提交 */
|
||||
post_abolishSubmit: (data?: BodyOptions) =>
|
||||
http.post('/app/selectMerchantsBasicInfo/abolishSubmit', data),
|
||||
/** 合同系统/选商废除 退回 */
|
||||
post_abolishRollback: (data?: BodyOptions) =>
|
||||
http.post('/app/selectMerchantsBasicInfo/abolishRollback', data),
|
||||
},
|
||||
lvxChange: {
|
||||
/** 合同系统/履行/履行提示/合同变更 保存合同变更申请 */
|
||||
|
@ -476,10 +532,10 @@ export default {
|
|||
http.get('/app/lvxChange/getContractChangeInfo', data),
|
||||
},
|
||||
contractRelieve: {
|
||||
/** 合同系统/履行/履行提示/合同终止(解除) 获取合同终止(解除)信息 */
|
||||
/** 合同系统/履行/履行提示/合同解除 获取合同解除信息 */
|
||||
get_getContractRelieveInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/contractRelieve/getContractRelieveInfo', data),
|
||||
/** 合同系统/履行/履行提示/合同终止(解除) 保存合同终止信息 */
|
||||
/** 合同系统/履行/履行提示/合同解除 保存合同解除信息 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/contractRelieve/save', data),
|
||||
},
|
||||
|
@ -490,6 +546,18 @@ export default {
|
|||
/** 合同系统/履行/履行提示/合同违约情况 获取合同违约信息 */
|
||||
get_getContractBreachInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/contractBreach/getContractBreachInfo', data),
|
||||
/** 合同系统/履行/履行提示/合同违约情况 查询流程未配置人员节点 */
|
||||
get_getFlowNodeUserConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/contractBreach/getFlowNodeUserConfig', data),
|
||||
/** 合同系统/履行/履行提示/合同违约情况 启动流程 */
|
||||
post_startWorkFlow: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBreach/startWorkFlow', data),
|
||||
/** 合同系统/履行/履行提示/合同违约情况 审核 */
|
||||
post_submit: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBreach/submit', data),
|
||||
/** 合同系统/履行/履行提示/合同违约情况 退回 */
|
||||
post_rollback: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBreach/rollback', data),
|
||||
},
|
||||
lvxResult: {
|
||||
/** 合同系统/履行/履行结果 履行结果保存 */
|
||||
|
@ -611,6 +679,12 @@ export default {
|
|||
/** 流程中心 获取流程节点人员配置信息 */
|
||||
post_getFlowNodeUserConfig: (data?: BodyOptions) =>
|
||||
http.post('/app/flowCenter/getFlowNodeUserConfig', data),
|
||||
/** 流程中心 获取流程变量配置 */
|
||||
get_getFlowVariablesConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/getFlowVariablesConfig', data),
|
||||
/** 流程中心 获取流程所有人员配置信息 */
|
||||
get_getFlowUserConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/getFlowUserConfig', data),
|
||||
},
|
||||
rl: {
|
||||
moduleParameter: {
|
||||
|
@ -627,6 +701,11 @@ export default {
|
|||
get_getNextNodeUser: (data?: QueryOptions) =>
|
||||
http.get('/app/rl/moduleParameter/getNextNodeUser', data),
|
||||
},
|
||||
workFlow: {
|
||||
/** 合同系统 流程待办 */
|
||||
get_queryMyTodoTask: (data?: QueryOptions) =>
|
||||
http.get('/app/rl/workFlow/queryMyTodoTask', data),
|
||||
},
|
||||
},
|
||||
dutyCount: {
|
||||
/** 协同办公/订餐管理/值班天数 分页查询 */
|
||||
|
@ -672,4 +751,30 @@ export default {
|
|||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/lxBasisSale/deletes', data),
|
||||
},
|
||||
workFlow: {
|
||||
/** 合同系统 查询下一节点id */
|
||||
get_getNextNodeUserConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/workFlow/getNextNodeUserConfig', data),
|
||||
/** 合同系统 获取可退回节点 */
|
||||
get_getBackNode: (data?: QueryOptions) =>
|
||||
http.get('/app/workFlow/getBackNode', data),
|
||||
/** 合同系统 审核记录 */
|
||||
get_history: (data?: QueryOptions) =>
|
||||
http.get('/app/workFlow/history', data),
|
||||
/** 合同系统 流程已办 */
|
||||
get_getDoneTaskByUserID: (data?: QueryOptions) =>
|
||||
http.get('/app/workFlow/getDoneTaskByUserID', data),
|
||||
},
|
||||
biddingResult: {
|
||||
/** 合同系统/选商/选商结果 分页查询 */
|
||||
get_page: (data?: QueryOptions) =>
|
||||
http.get('/app/biddingResult/page', data),
|
||||
/** 合同系统/选商/选商结果 保存 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/biddingResult/save', data),
|
||||
},
|
||||
home: {
|
||||
/** 合同系统/首页待办/已办 待办 */
|
||||
get_todo: (data?: QueryOptions) => http.get('/app/home/todo', data),
|
||||
},
|
||||
};
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
export {};
|
||||
|
||||
declare interface PageVo {
|
||||
code: number;
|
||||
data: any;
|
||||
message: string;
|
||||
}
|
|
@ -93,9 +93,9 @@ function mockLogin(username: string, password: string, isSkip: boolean = true) {
|
|||
<a-button @click="mockLogin('Admin.itl', 'ABC123')">超级管理员</a-button>
|
||||
<a-button @click="mockLogin('zhangxs.itl', 'Rlgs!6243910')">zxs</a-button>
|
||||
<a-button @click="mockLogin('zengp.itl', 'Rlgs!6243910')">zp</a-button>
|
||||
<a-button @click="mockLogin('rlqym', 'Rlgs!6243910', false)"
|
||||
>rlqym</a-button
|
||||
>
|
||||
<a-button @click="mockLogin('rlqym', 'Rlgs!6243910', false)">
|
||||
rlqym
|
||||
</a-button>
|
||||
</a-space>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
@ -177,9 +177,6 @@ export function getFormSchema(params: any = {}) {
|
|||
valueChange: {
|
||||
immediate: true, // 是否立即执行一次
|
||||
handle({ form }) {
|
||||
debugger;
|
||||
|
||||
console.log(form);
|
||||
form.fundAllocationName = getDictObj(
|
||||
DICT_TYPE.contract_fund_flow,
|
||||
form.fundAllocation,
|
||||
|
|
|
@ -116,8 +116,14 @@ function handleOpenSignBasisChooseModal() {
|
|||
const tableFullData = xGridRef.value?.getTableData().fullData;
|
||||
if (tableFullData && tableFullData.length > 0) {
|
||||
chooseSigningBasisModalApi.setData({
|
||||
title: '选择签约依据',
|
||||
guids: tableFullData.map((item) => item.guid) || [],
|
||||
});
|
||||
} else {
|
||||
chooseSigningBasisModalApi.setData({
|
||||
title: '选择签约依据',
|
||||
guids: [],
|
||||
});
|
||||
}
|
||||
|
||||
chooseSigningBasisModalApi.open();
|
||||
|
@ -204,8 +210,6 @@ async function handleSave() {
|
|||
isLoading.value = true;
|
||||
|
||||
try {
|
||||
const form = formRef.value.form;
|
||||
|
||||
await formRef.value.submit();
|
||||
|
||||
let newForm: any = {};
|
||||
|
@ -264,7 +268,7 @@ async function handleSave() {
|
|||
|
||||
result = await Apis.contractBaseInfo.post_apply({ data: newForm });
|
||||
|
||||
currData.value.taskId = result.taskId;
|
||||
id.value = result.value;
|
||||
|
||||
message.success('保存成功');
|
||||
Modal.confirm({
|
||||
|
@ -368,19 +372,11 @@ onMounted(async () => {
|
|||
|
||||
<template>
|
||||
<Page ref="pageRef" content-class="h-full flex flex-col">
|
||||
<ChooseUserModal
|
||||
class="w-[950px]"
|
||||
multiple
|
||||
@confirm="handleChooseUserConfirm"
|
||||
/>
|
||||
<ChooseUserModal class="w-[950px]" multiple @confirm="handleChooseUserConfirm" />
|
||||
|
||||
<ChooseSigningBasisModal class="w-[950px]" @confirm="handleChooseConfirm" />
|
||||
|
||||
<a-affix
|
||||
:offset-top="0"
|
||||
:style="{ zIndex: 50 }"
|
||||
:target="() => pageRef.bodyRef"
|
||||
>
|
||||
<a-affix :offset-top="0" :style="{ zIndex: 50 }" :target="() => pageRef.bodyRef">
|
||||
<div class="flex w-full flex-row bg-white pl-1 pt-1">
|
||||
<a-space class="flex-1">
|
||||
<vben-button
|
||||
|
@ -415,13 +411,11 @@ onMounted(async () => {
|
|||
>
|
||||
删除
|
||||
</vben-button>
|
||||
<vben-button variant="secondary" @click="handleBack()">
|
||||
返回
|
||||
</vben-button>
|
||||
<vben-button variant="secondary" @click="handleBack()"> 返回 </vben-button>
|
||||
</a-space>
|
||||
|
||||
<vben-button variant="secondary" @click="handleFold()">
|
||||
一键{{ isFold ? '展开' : '收起' }}
|
||||
一键{{ isFold ? "展开" : "收起" }}
|
||||
</vben-button>
|
||||
</div>
|
||||
</a-affix>
|
||||
|
|
|
@ -8,13 +8,13 @@ export function getBidColumns(_params?: any): VxeGridPropTypes.Columns {
|
|||
},
|
||||
{
|
||||
type: 'expand',
|
||||
width: 60,
|
||||
width: '0px',
|
||||
slots: { content: 'expand-content-slot' },
|
||||
},
|
||||
{
|
||||
field: 'bidName',
|
||||
title: '标段名称',
|
||||
width: 200,
|
||||
width: 180,
|
||||
slots: { default: 'bidname-slot' },
|
||||
},
|
||||
{
|
||||
|
@ -32,7 +32,7 @@ export function getBidColumns(_params?: any): VxeGridPropTypes.Columns {
|
|||
{
|
||||
field: 'operate',
|
||||
title: '操作',
|
||||
width: 80,
|
||||
width: 120,
|
||||
slots: { default: 'operate-slot' },
|
||||
fixed: 'right',
|
||||
},
|
||||
|
|
|
@ -32,7 +32,7 @@ export function getFormSchema(_params: any = {}) {
|
|||
isCurrent: false,
|
||||
keyField: 'id',
|
||||
},
|
||||
expandAll: {
|
||||
expandConfig: {
|
||||
expandAll: true,
|
||||
reserve: true,
|
||||
showIcon: false,
|
||||
|
@ -124,7 +124,7 @@ export function getFormSchema(_params: any = {}) {
|
|||
component: {
|
||||
name: 'a-textarea',
|
||||
vModel: 'value',
|
||||
autosize: { minRows: 4, maxRows: 6 },
|
||||
autoSize: { minRows: 4, maxRows: 6 },
|
||||
},
|
||||
rules: [{ required: true, message: '请输入备注' }],
|
||||
},
|
||||
|
@ -147,7 +147,7 @@ export function getFormSchema(_params: any = {}) {
|
|||
component: {
|
||||
name: 'a-textarea',
|
||||
vModel: 'value',
|
||||
autosize: { minRows: 4, maxRows: 6 },
|
||||
autoSize: { minRows: 4, maxRows: 6 },
|
||||
},
|
||||
},
|
||||
qualificReq: {
|
||||
|
@ -157,7 +157,7 @@ export function getFormSchema(_params: any = {}) {
|
|||
component: {
|
||||
name: 'a-textarea',
|
||||
vModel: 'value',
|
||||
autosize: { minRows: 4, maxRows: 6 },
|
||||
autoSize: { minRows: 4, maxRows: 6 },
|
||||
},
|
||||
},
|
||||
isBid: {
|
||||
|
@ -184,7 +184,10 @@ export function getFormSchema(_params: any = {}) {
|
|||
console.log(e);
|
||||
console.log(id);
|
||||
const xGridRef = gridRefs.value.get(id); // Assuming you have a main grid ref
|
||||
xGridRef && xGridRef.value.insertAt(e, -1);
|
||||
console.log(gridRefs.value);
|
||||
console.log(xGridRef);
|
||||
|
||||
xGridRef && xGridRef.insertAt(e, -1);
|
||||
}}
|
||||
></ChooseCompanyModal>
|
||||
<div class="flex items-center">
|
||||
|
@ -222,6 +225,7 @@ export function getFormSchema(_params: any = {}) {
|
|||
}));
|
||||
xGridRef.value.insertAt(rowsToAdd, -1);
|
||||
}
|
||||
xGridRef.value.setAllRowExpand(true);
|
||||
}}
|
||||
options={options2}
|
||||
v-model:value={form.budgetSum2}
|
||||
|
@ -266,6 +270,21 @@ export function getFormSchema(_params: any = {}) {
|
|||
<a-button
|
||||
onClick={() => {
|
||||
id = row.id;
|
||||
const tableFullData =
|
||||
xGridRef.value?.getTableData().fullData;
|
||||
if (tableFullData && tableFullData.length > 0) {
|
||||
chooseCompanyModalApi.setData({
|
||||
title: '选择签约依据',
|
||||
guids:
|
||||
tableFullData.map((item) => item.guid) || [],
|
||||
});
|
||||
} else {
|
||||
chooseCompanyModalApi.setData({
|
||||
title: '选择签约依据',
|
||||
guids: [],
|
||||
});
|
||||
}
|
||||
|
||||
chooseCompanyModalApi.open();
|
||||
// row.providerList.push({
|
||||
// providerName: '供应商11',
|
||||
|
@ -296,7 +315,7 @@ export function getFormSchema(_params: any = {}) {
|
|||
component: {
|
||||
name: 'a-textarea',
|
||||
vModel: 'value',
|
||||
autosize: { minRows: 4, maxRows: 6 },
|
||||
autoSize: { minRows: 4, maxRows: 6 },
|
||||
},
|
||||
},
|
||||
projectContent: {
|
||||
|
@ -306,7 +325,7 @@ export function getFormSchema(_params: any = {}) {
|
|||
component: {
|
||||
name: 'a-textarea',
|
||||
vModel: 'value',
|
||||
autosize: { minRows: 4, maxRows: 6 },
|
||||
autoSize: { minRows: 4, maxRows: 6 },
|
||||
},
|
||||
},
|
||||
quality: {
|
||||
|
@ -317,7 +336,7 @@ export function getFormSchema(_params: any = {}) {
|
|||
component: {
|
||||
name: 'a-textarea',
|
||||
vModel: 'value',
|
||||
autosize: { minRows: 4, maxRows: 6 },
|
||||
autoSize: { minRows: 4, maxRows: 6 },
|
||||
},
|
||||
},
|
||||
stockNums: {
|
||||
|
@ -328,7 +347,7 @@ export function getFormSchema(_params: any = {}) {
|
|||
component: {
|
||||
name: 'a-textarea',
|
||||
vModel: 'value',
|
||||
autosize: { minRows: 4, maxRows: 6 },
|
||||
autoSize: { minRows: 4, maxRows: 6 },
|
||||
},
|
||||
},
|
||||
stockPlanMx: {
|
||||
|
@ -339,7 +358,7 @@ export function getFormSchema(_params: any = {}) {
|
|||
component: {
|
||||
name: 'a-textarea',
|
||||
vModel: 'value',
|
||||
autosize: { minRows: 4, maxRows: 6 },
|
||||
autoSize: { minRows: 4, maxRows: 6 },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
@ -37,7 +37,7 @@ const formRefByBaseInfo = ref();
|
|||
|
||||
const isLoading = ref(false);
|
||||
|
||||
const contractTypeData = ref(['1']);
|
||||
const contractTypeData = ref<any[]>([]);
|
||||
const currData = ref<any>({});
|
||||
|
||||
const formBindingByBaseInfo = ref({
|
||||
|
@ -365,28 +365,16 @@ onMounted(async () => {
|
|||
|
||||
<template>
|
||||
<Page ref="pageRef" content-class="h-full flex flex-col">
|
||||
<a-affix
|
||||
:offset-top="0"
|
||||
:style="{ zIndex: 50 }"
|
||||
:target="() => pageRef.bodyRef"
|
||||
>
|
||||
<a-affix :offset-top="0" :style="{ zIndex: 50 }" :target="() => pageRef.bodyRef">
|
||||
<div class="flex w-full flex-row bg-white pl-1 pt-1">
|
||||
<a-space class="flex-1">
|
||||
<vben-button variant="primary" @click="handleSave()">
|
||||
保存
|
||||
</vben-button>
|
||||
<vben-button variant="primary" @click="handleSubmit()">
|
||||
提交
|
||||
</vben-button>
|
||||
<vben-button variant="destructive" @click="handleDelete()">
|
||||
废除
|
||||
</vben-button>
|
||||
<vben-button variant="secondary" @click="handleBack()">
|
||||
返回
|
||||
</vben-button>
|
||||
<vben-button variant="primary" @click="handleSave()"> 保存 </vben-button>
|
||||
<vben-button variant="primary" @click="handleSubmit()"> 提交 </vben-button>
|
||||
<vben-button variant="destructive" @click="handleDelete()"> 废除 </vben-button>
|
||||
<vben-button variant="secondary" @click="handleBack()"> 返回 </vben-button>
|
||||
</a-space>
|
||||
<vben-button variant="secondary" @click="handleFold()">
|
||||
一键{{ isFold ? '展开' : '收起' }}
|
||||
一键{{ isFold ? "展开" : "收起" }}
|
||||
</vben-button>
|
||||
</div>
|
||||
</a-affix>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { DICT_TYPE, getDictObj, getDictOptions } from '#/utils/dict';
|
||||
import { dict } from '@fast-crud/fast-crud';
|
||||
import { render } from 'vue';
|
||||
|
||||
import { DICT_TYPE, getDictObj, getDictOptions } from '#/utils/dict';
|
||||
|
||||
/**
|
||||
* 筛选合同列表数据
|
||||
|
@ -75,9 +75,9 @@ export function getFormSchema(params: any = {}) {
|
|||
return true;
|
||||
},
|
||||
render({ form }) {
|
||||
let data = filterContractTypes(contractTypeData,"-1")
|
||||
const data = filterContractTypes(contractTypeData, '-1');
|
||||
for (const item of data) {
|
||||
if(item.value === form.ctrType){
|
||||
if (item.value === form.ctrType) {
|
||||
return <span>{item.label}</span>;
|
||||
}
|
||||
}
|
||||
|
@ -107,9 +107,9 @@ export function getFormSchema(params: any = {}) {
|
|||
return true;
|
||||
},
|
||||
render({ form }) {
|
||||
let data = filterContractTypes(contractTypeData,form.ctrType)
|
||||
const data = filterContractTypes(contractTypeData, form.ctrType);
|
||||
for (const item of data) {
|
||||
if(item.value === form.ctrTwoType){
|
||||
if (item.value === form.ctrTwoType) {
|
||||
return <span>{item.label}</span>;
|
||||
}
|
||||
}
|
||||
|
@ -164,7 +164,14 @@ export function getFormSchema(params: any = {}) {
|
|||
return true;
|
||||
},
|
||||
render({ form }) {
|
||||
return <span class="mr-2">{getDictObj(DICT_TYPE.contract_currency_unit,form.priceType)?.label}</span>;
|
||||
return (
|
||||
<span class="mr-2">
|
||||
{
|
||||
getDictObj(DICT_TYPE.contract_currency_unit, form.priceType)
|
||||
?.label
|
||||
}
|
||||
</span>
|
||||
);
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -186,7 +193,14 @@ export function getFormSchema(params: any = {}) {
|
|||
return true;
|
||||
},
|
||||
render({ form }) {
|
||||
return <span class="mr-2">{getDictObj(DICT_TYPE.contract_fund_flow,form.fundAllocation)?.label}</span>;
|
||||
return (
|
||||
<span class="mr-2">
|
||||
{
|
||||
getDictObj(DICT_TYPE.contract_fund_flow, form.fundAllocation)
|
||||
?.label
|
||||
}
|
||||
</span>
|
||||
);
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -208,7 +222,14 @@ export function getFormSchema(params: any = {}) {
|
|||
return true;
|
||||
},
|
||||
render({ form }) {
|
||||
return <span class="mr-2">{getDictObj(DICT_TYPE.contract_funding_source,form.fundDitch)?.label}</span>;
|
||||
return (
|
||||
<span class="mr-2">
|
||||
{
|
||||
getDictObj(DICT_TYPE.contract_funding_source, form.fundDitch)
|
||||
?.label
|
||||
}
|
||||
</span>
|
||||
);
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -229,7 +250,11 @@ export function getFormSchema(params: any = {}) {
|
|||
return true;
|
||||
},
|
||||
render({ form }) {
|
||||
return <span class="mr-2">{getDictObj(DICT_TYPE.common_whether,form.frameProtocol)?.label}</span>;
|
||||
return (
|
||||
<span class="mr-2">
|
||||
{getDictObj(DICT_TYPE.common_whether, form.frameProtocol)?.label}
|
||||
</span>
|
||||
);
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -250,7 +275,14 @@ export function getFormSchema(params: any = {}) {
|
|||
return true;
|
||||
},
|
||||
render({ form }) {
|
||||
return <span class="mr-2">{getDictObj(DICT_TYPE.common_whether,form.frameProtocolCtr)?.label}</span>;
|
||||
return (
|
||||
<span class="mr-2">
|
||||
{
|
||||
getDictObj(DICT_TYPE.common_whether, form.frameProtocolCtr)
|
||||
?.label
|
||||
}
|
||||
</span>
|
||||
);
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -272,7 +304,14 @@ export function getFormSchema(params: any = {}) {
|
|||
return true;
|
||||
},
|
||||
render({ form }) {
|
||||
return <span class="mr-2">{getDictObj(DICT_TYPE.contract_organization_form,form.organiza)?.label}</span>;
|
||||
return (
|
||||
<span class="mr-2">
|
||||
{
|
||||
getDictObj(DICT_TYPE.contract_organization_form, form.organiza)
|
||||
?.label
|
||||
}
|
||||
</span>
|
||||
);
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import { DICT_TYPE, getDictObj, getDictOptions } from '#/utils/dict';
|
||||
import { dict } from '@fast-crud/fast-crud';
|
||||
|
||||
import { DICT_TYPE, getDictObj, getDictOptions } from '#/utils/dict';
|
||||
|
||||
export function getFormSchema(_params: any = {}) {
|
||||
return {
|
||||
initialForm: {
|
||||
|
@ -112,8 +113,8 @@ export function getFormSchema(_params: any = {}) {
|
|||
return true;
|
||||
},
|
||||
render({ form }) {
|
||||
//注意此处的v-model写法
|
||||
let options1 = getDictOptions(
|
||||
// 注意此处的v-model写法
|
||||
const options1 = getDictOptions(
|
||||
DICT_TYPE.deadlineForPerformance,
|
||||
'string',
|
||||
);
|
||||
|
@ -122,13 +123,13 @@ export function getFormSchema(_params: any = {}) {
|
|||
<div class="flex">
|
||||
<a-form-item class="!mb-0 inline-block">
|
||||
<a-radio-group
|
||||
v-model:value={form.isBid}
|
||||
options={options1}
|
||||
v-model:value={form.isBid}
|
||||
/>
|
||||
</a-form-item>
|
||||
<div class="w-2"></div>
|
||||
{form.isBid === 1 && (
|
||||
<a-form-item label="相关约定" class="!mb-0 inline-block">
|
||||
<a-form-item class="!mb-0 inline-block" label="相关约定">
|
||||
<a-input v-model:value={form.xxxx} />
|
||||
</a-form-item>
|
||||
)}
|
||||
|
|
|
@ -1,9 +1,17 @@
|
|||
import type { VxeGridPropTypes } from 'vxe-table';
|
||||
import { ref } from 'vue';
|
||||
|
||||
import { useVbenModal } from '@vben/common-ui';
|
||||
|
||||
import { dict } from '@fast-crud/fast-crud';
|
||||
import { VxeGrid, type VxeGridPropTypes } from 'vxe-table';
|
||||
|
||||
import { unitComponentProps } from '#/common/unit';
|
||||
import { DICT_TYPE, getDictOptions } from '#/utils/dict';
|
||||
import chooseUserModal from '#/views/system/user/choose-user-modal.vue';
|
||||
|
||||
const [ChooseUserModal, chooseUserModalApi] = useVbenModal({
|
||||
connectedComponent: chooseUserModal,
|
||||
});
|
||||
|
||||
export function getUserColumns(_params?: any): VxeGridPropTypes.Columns {
|
||||
return [
|
||||
|
@ -15,6 +23,25 @@ export function getUserColumns(_params?: any): VxeGridPropTypes.Columns {
|
|||
}
|
||||
|
||||
export function getFormSchema(_params?: any) {
|
||||
const xGridRef = ref();
|
||||
|
||||
/** Hooks - 表格 */
|
||||
const gridOptions = {
|
||||
columns: [
|
||||
{ field: 'userCode', title: '用户编号', width: 120 },
|
||||
{ field: 'userName', title: '姓名', width: 100 },
|
||||
{ field: 'organization', title: '单位', width: 200 },
|
||||
{ field: 'idNumber', title: '身份证号', width: 180 },
|
||||
],
|
||||
data: [],
|
||||
toolbarConfig: {
|
||||
enabled: false,
|
||||
},
|
||||
pagerConfig: {
|
||||
enabled: false,
|
||||
},
|
||||
};
|
||||
|
||||
return {
|
||||
col: { span: 24 },
|
||||
initialForm: {
|
||||
|
@ -71,18 +98,43 @@ export function getFormSchema(_params?: any) {
|
|||
name: 'fs-dict-select',
|
||||
vModel: 'value',
|
||||
allowClear: false,
|
||||
class: 'w-[200px]',
|
||||
},
|
||||
},
|
||||
projectNum5: {
|
||||
title: '受托人',
|
||||
key: 'projectNum5',
|
||||
col: { span: 24 },
|
||||
col: { span: 16 },
|
||||
conditionalRender: {
|
||||
match(_context) {
|
||||
return true;
|
||||
},
|
||||
render(_context) {
|
||||
return <a-button type="primary">点击选择</a-button>;
|
||||
return (
|
||||
<div>
|
||||
<ChooseUserModal
|
||||
class="w-[950px]"
|
||||
onConfirm={(e) => {
|
||||
console.log(e);
|
||||
console.log(id);
|
||||
xGridRef && xGridRef.value.insertAt(e, -1);
|
||||
}}
|
||||
></ChooseUserModal>
|
||||
<a-button
|
||||
onClick={() => {
|
||||
chooseUserModalApi.setData({
|
||||
userIds: [],
|
||||
});
|
||||
chooseUserModalApi.open();
|
||||
}}
|
||||
type="primary"
|
||||
>
|
||||
点击选择
|
||||
</a-button>
|
||||
|
||||
<VxeGrid ref={xGridRef} {...gridOptions}></VxeGrid>
|
||||
</div>
|
||||
);
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
@ -24,7 +24,8 @@ const fileUploader = new FileUploader({});
|
|||
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const id = route.params.id;
|
||||
const id = ref(route.params.id);
|
||||
|
||||
const pageRef = ref();
|
||||
|
||||
const formRef = ref();
|
||||
|
|
|
@ -86,7 +86,7 @@ export default defineConfig(async () => {
|
|||
changeOrigin: true,
|
||||
rewrite: (path) => path.replace(/^\/api\/zzz\/app/, '/'),
|
||||
// target: `http://192.168.0.193:8083/rl`,
|
||||
target: `http://192.168.147.164:8089/rl`,
|
||||
target: `http://192.168.148.88:8089/rl`,
|
||||
ws: true,
|
||||
},
|
||||
'/api/zzz/uc': {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import type { BodyOptions, QueryOptions } from './global.d';
|
||||
|
||||
import { http } from './request/index';
|
||||
import type { QueryOptions, BodyOptions } from './global.d';
|
||||
|
||||
export default {
|
||||
meeting: {
|
||||
|
@ -17,6 +18,9 @@ export default {
|
|||
get_export: (data?: QueryOptions) =>
|
||||
http.get('/app/meeting/list/export', data),
|
||||
},
|
||||
/** 协同办公/会议管理 门户获取会议数据 */
|
||||
get_getFundingSource: (data?: QueryOptions) =>
|
||||
http.get('/app/meeting/getFundingSource', data),
|
||||
},
|
||||
tysq: {
|
||||
zzjg: {
|
||||
|
@ -35,11 +39,11 @@ export default {
|
|||
/** 协同办公/字典表 字典类型保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/dictType/save', data),
|
||||
/** 协同办公/字典表 字典类型删除 */
|
||||
post_delete: (data?: BodyOptions) =>
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/dictType/deletes', data),
|
||||
},
|
||||
uaa: {
|
||||
/** 用户中心 用户登陆 Copy */
|
||||
/** 用户中心 用户登陆 */
|
||||
post_validateAccount: (data?: BodyOptions) =>
|
||||
http.post('/uc/uaa/validateAccount', data),
|
||||
},
|
||||
|
@ -145,23 +149,24 @@ export default {
|
|||
post_save: (data?: BodyOptions) => http.post('/app/ccsq/save', data),
|
||||
/** 协同办公/出差申请 申请单删除 */
|
||||
post_deletes: (data?: BodyOptions) => http.post('/app/ccsq/deletes', data),
|
||||
/** 协同办公/出差申请 出差送审、审核 */
|
||||
post_audit: (data?: BodyOptions) => http.post('/app/ccsq/audit', data),
|
||||
/** 协同办公/出差申请 退回 */
|
||||
post_turnTask: (data?: BodyOptions) =>
|
||||
http.post('/app/ccsq/turnTask', data),
|
||||
post_rollback: (data?: BodyOptions) =>
|
||||
http.post('/app/ccsq/rollback', data),
|
||||
/** 协同办公/出差申请 启动流程 */
|
||||
post_startWorkFlow: (data?: BodyOptions) =>
|
||||
http.post('/app/ccsq/startWorkFlow', data),
|
||||
/** 协同办公/出差申请 送审 */
|
||||
/** 协同办公/出差申请 审核 */
|
||||
post_submit: (data?: BodyOptions) => http.post('/app/ccsq/submit', data),
|
||||
/** 协同办公/出差申请 待办 */
|
||||
get_toDoPage: (data?: QueryOptions) => http.get('/app/ccsq/toDoPage', data),
|
||||
/** 协同办公/出差申请 已办 */
|
||||
get_donePage: (data?: QueryOptions) => http.get('/app/ccsq/donePage', data),
|
||||
/** 协同办公/出差申请 获取可退回节点信息 */
|
||||
get_getBackNode: (data?: QueryOptions) =>
|
||||
http.get('/app/ccsq/getBackNode', data),
|
||||
/** 协同办公/出差申请 查询流程节点 */
|
||||
get_getFlowNodeUserConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/ccsq/getFlowNodeUserConfig', data),
|
||||
/** 协同办公/出差申请 下一审核节点 */
|
||||
post_getNextNodeUserConfig: (data?: BodyOptions) =>
|
||||
http.post('/app/ccsq/getNextNodeUserConfig', data),
|
||||
},
|
||||
orderfood: {
|
||||
/** 协同办公/订餐管理/订餐 订餐加载接口 */
|
||||
|
@ -177,7 +182,7 @@ export default {
|
|||
http.post('/app/orderfood/assistCancel', data),
|
||||
},
|
||||
orderfoods: {
|
||||
/** 协同办公/订餐管理/汇总 部门结算汇总 */
|
||||
/** 协同办公/订餐管理/汇总 单位订餐汇总 */
|
||||
get_departmentSummary: (data?: QueryOptions) =>
|
||||
http.get('/app/orderfoods/departmentSummary', data),
|
||||
/** 协同办公/订餐管理/汇总 订餐汇总 */
|
||||
|
@ -197,7 +202,7 @@ export default {
|
|||
http.get('/app/orderfoods/personalSummary/export', data),
|
||||
},
|
||||
departmentSummary: {
|
||||
/** 协同办公/订餐管理/汇总 部门结算汇总导出 */
|
||||
/** 协同办公/订餐管理/汇总 单位订餐汇总导出 */
|
||||
get_export: (data?: QueryOptions) =>
|
||||
http.get('/app/orderfoods/departmentSummary/export', data),
|
||||
},
|
||||
|
@ -286,6 +291,7 @@ export default {
|
|||
http.post('/app/addressor/saveBatch', data),
|
||||
/** 协同办公/会议管理/发言人 发言人保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/addressor/save', data),
|
||||
/** 协同办公/会议管理/发言人 删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/addressor/deletes', data),
|
||||
},
|
||||
|
@ -296,6 +302,7 @@ export default {
|
|||
/** 协同办公/办公用品/办公用品清单 批量保存 */
|
||||
post_saveBatch: (data?: BodyOptions) =>
|
||||
http.post('/app/officeSuppliesList/saveBatch', data),
|
||||
/** 协同办公/办公用品/办公用品清单 删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/officeSuppliesList/deletes', data),
|
||||
},
|
||||
|
@ -325,6 +332,7 @@ export default {
|
|||
/** 协同办公/订餐管理/自动订餐人员管理 批量保存 */
|
||||
post_saveBatch: (data?: BodyOptions) =>
|
||||
http.post('/app/autoOrderfoodPeoples/saveBatch', data),
|
||||
/** 协同办公/订餐管理/自动订餐人员管理 删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/autoOrderfoodPeoples/deletes', data),
|
||||
},
|
||||
|
@ -362,11 +370,17 @@ export default {
|
|||
/** 合同系统/申报 合同申报基本信息保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/sbCtrBasePt/save', data),
|
||||
/** 合同系统/申报 合同申报基本信息删除 */
|
||||
get_deletes: (data?: QueryOptions) =>
|
||||
http.get('/app/sbCtrBasePt/deletes', data),
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/sbCtrBasePt/deletes', data),
|
||||
/** 合同系统/申报 获取资金渠道 */
|
||||
get_getFundingSource: (data?: QueryOptions) =>
|
||||
http.get('/app/sbCtrBasePt/getFundingSource', data),
|
||||
/** 合同系统/申报 提交 */
|
||||
post_submit: (data?: BodyOptions) =>
|
||||
http.post('/app/sbCtrBasePt/submit', data),
|
||||
/** 合同系统/申报 退回 */
|
||||
post_rollback: (data?: BodyOptions) =>
|
||||
http.post('/app/sbCtrBasePt/rollback', data),
|
||||
},
|
||||
contractBaseInfo: {
|
||||
/** 合同系统/立项 合同立项保存 */
|
||||
|
@ -384,9 +398,21 @@ export default {
|
|||
/** 合同系统/立项 提交 */
|
||||
post_submit: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBaseInfo/submit', data),
|
||||
/** 合同系统/立项 退回 */
|
||||
/** 合同系统/立项废除 退回 */
|
||||
post_rollback: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBaseInfo/rollback', data),
|
||||
/** 合同系统/立项废除 合同立项废除 */
|
||||
post_abolish: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBaseInfo/abolish', data),
|
||||
/** 合同系统/立项废除 提交 */
|
||||
post_abolishSubmit: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBaseInfo/abolishSubmit', data),
|
||||
/** 合同系统/立项 流程启动(非待办提交) */
|
||||
post_applyFlowStart: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBaseInfo/applyFlowStart', data),
|
||||
/** 合同系统/立项废除 流程启动(非待办提交) */
|
||||
post_abolishFlowStart: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBaseInfo/abolishFlowStart', data),
|
||||
},
|
||||
proProviderInfo: {
|
||||
/** 合同系统/相对人管理 合同相对人查询 */
|
||||
|
@ -447,6 +473,24 @@ export default {
|
|||
/** 合同系统/履行/履行提示/合同付款 保存付款申请 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/contractPayment/save', data),
|
||||
/** 合同系统/履行/履行提示/合同付款 查询流程未配置人员节点 */
|
||||
get_getFlowNodeUserConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/contractPayment/getFlowNodeUserConfig', data),
|
||||
/** 合同系统/履行/履行提示/合同付款 送审 */
|
||||
post_startWorkFlow: (data?: BodyOptions) =>
|
||||
http.post('/app/contractPayment/startWorkFlow', data),
|
||||
/** 合同系统/履行/履行提示/合同付款 审核通过 */
|
||||
post_submit: (data?: BodyOptions) =>
|
||||
http.post('/app/contractPayment/submit', data),
|
||||
/** 合同系统/履行/履行提示/合同付款 退回 */
|
||||
post_rollback: (data?: BodyOptions) =>
|
||||
http.post('/app/contractPayment/rollback', data),
|
||||
/** 合同系统/履行/履行提示/合同付款 待审核 */
|
||||
get_toDoPage: (data?: QueryOptions) =>
|
||||
http.get('/app/contractPayment/toDoPage', data),
|
||||
/** 合同系统/履行/履行提示/合同付款 已审核 */
|
||||
get_donePage: (data?: QueryOptions) =>
|
||||
http.get('/app/contractPayment/donePage', data),
|
||||
},
|
||||
selectMerchantsBasicInfo: {
|
||||
/** 合同系统/选商 分页查询 */
|
||||
|
@ -467,6 +511,18 @@ export default {
|
|||
/** 合同系统/选商 退回 */
|
||||
post_rollback: (data?: BodyOptions) =>
|
||||
http.post('/app/selectMerchantsBasicInfo/rollback', data),
|
||||
/** 合同系统/选商废除 选商废除(弃用) */
|
||||
post_abolish: (data?: BodyOptions) =>
|
||||
http.post('/app/selectMerchantsBasicInfo/abolish', data),
|
||||
/** 合同系统/选商废除 选商废除(开始节点提交,非待办提交) */
|
||||
post_abolishFlowStart: (data?: BodyOptions) =>
|
||||
http.post('/app/selectMerchantsBasicInfo/abolishFlowStart', data),
|
||||
/** 合同系统/选商废除 提交 */
|
||||
post_abolishSubmit: (data?: BodyOptions) =>
|
||||
http.post('/app/selectMerchantsBasicInfo/abolishSubmit', data),
|
||||
/** 合同系统/选商废除 退回 */
|
||||
post_abolishRollback: (data?: BodyOptions) =>
|
||||
http.post('/app/selectMerchantsBasicInfo/abolishRollback', data),
|
||||
},
|
||||
lvxChange: {
|
||||
/** 合同系统/履行/履行提示/合同变更 保存合同变更申请 */
|
||||
|
@ -476,10 +532,10 @@ export default {
|
|||
http.get('/app/lvxChange/getContractChangeInfo', data),
|
||||
},
|
||||
contractRelieve: {
|
||||
/** 合同系统/履行/履行提示/合同终止(解除) 获取合同终止(解除)信息 */
|
||||
/** 合同系统/履行/履行提示/合同解除 获取合同解除信息 */
|
||||
get_getContractRelieveInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/contractRelieve/getContractRelieveInfo', data),
|
||||
/** 合同系统/履行/履行提示/合同终止(解除) 保存合同终止信息 */
|
||||
/** 合同系统/履行/履行提示/合同解除 保存合同解除信息 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/contractRelieve/save', data),
|
||||
},
|
||||
|
@ -490,6 +546,18 @@ export default {
|
|||
/** 合同系统/履行/履行提示/合同违约情况 获取合同违约信息 */
|
||||
get_getContractBreachInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/contractBreach/getContractBreachInfo', data),
|
||||
/** 合同系统/履行/履行提示/合同违约情况 查询流程未配置人员节点 */
|
||||
get_getFlowNodeUserConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/contractBreach/getFlowNodeUserConfig', data),
|
||||
/** 合同系统/履行/履行提示/合同违约情况 启动流程 */
|
||||
post_startWorkFlow: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBreach/startWorkFlow', data),
|
||||
/** 合同系统/履行/履行提示/合同违约情况 审核 */
|
||||
post_submit: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBreach/submit', data),
|
||||
/** 合同系统/履行/履行提示/合同违约情况 退回 */
|
||||
post_rollback: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBreach/rollback', data),
|
||||
},
|
||||
lvxResult: {
|
||||
/** 合同系统/履行/履行结果 履行结果保存 */
|
||||
|
@ -499,6 +567,15 @@ export default {
|
|||
/** 合同系统/履行/履行提示/临时归档 保存临时归档信息 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/contractFiling/save', data),
|
||||
/** 合同系统/履行/履行提示/临时归档 分页查询 */
|
||||
get_pageFillingList: (data?: QueryOptions) =>
|
||||
http.get('/app/contractFiling/pageFillingList', data),
|
||||
/** 合同系统/履行/履行提示/临时归档 回档 */
|
||||
post_update: (data?: BodyOptions) =>
|
||||
http.post('/app/contractFiling/update', data),
|
||||
/** 合同系统/履行/履行提示/临时归档 获取临时归档信息 */
|
||||
get_getLsgd: (data?: QueryOptions) =>
|
||||
http.get('/app/contractFiling/getLsgd', data),
|
||||
},
|
||||
biddingExpert: {
|
||||
/** 合同系统/选商/选商招标专家 招标专家查询 */
|
||||
|
@ -602,6 +679,12 @@ export default {
|
|||
/** 流程中心 获取流程节点人员配置信息 */
|
||||
post_getFlowNodeUserConfig: (data?: BodyOptions) =>
|
||||
http.post('/app/flowCenter/getFlowNodeUserConfig', data),
|
||||
/** 流程中心 获取流程变量配置 */
|
||||
get_getFlowVariablesConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/getFlowVariablesConfig', data),
|
||||
/** 流程中心 获取流程所有人员配置信息 */
|
||||
get_getFlowUserConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/getFlowUserConfig', data),
|
||||
},
|
||||
rl: {
|
||||
moduleParameter: {
|
||||
|
@ -618,6 +701,11 @@ export default {
|
|||
get_getNextNodeUser: (data?: QueryOptions) =>
|
||||
http.get('/app/rl/moduleParameter/getNextNodeUser', data),
|
||||
},
|
||||
workFlow: {
|
||||
/** 合同系统 流程待办 */
|
||||
get_queryMyTodoTask: (data?: QueryOptions) =>
|
||||
http.get('/app/rl/workFlow/queryMyTodoTask', data),
|
||||
},
|
||||
},
|
||||
dutyCount: {
|
||||
/** 协同办公/订餐管理/值班天数 分页查询 */
|
||||
|
@ -663,4 +751,30 @@ export default {
|
|||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/lxBasisSale/deletes', data),
|
||||
},
|
||||
workFlow: {
|
||||
/** 合同系统 查询下一节点id */
|
||||
get_getNextNodeUserConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/workFlow/getNextNodeUserConfig', data),
|
||||
/** 合同系统 获取可退回节点 */
|
||||
get_getBackNode: (data?: QueryOptions) =>
|
||||
http.get('/app/workFlow/getBackNode', data),
|
||||
/** 合同系统 审核记录 */
|
||||
get_history: (data?: QueryOptions) =>
|
||||
http.get('/app/workFlow/history', data),
|
||||
/** 合同系统 流程已办 */
|
||||
get_getDoneTaskByUserID: (data?: QueryOptions) =>
|
||||
http.get('/app/workFlow/getDoneTaskByUserID', data),
|
||||
},
|
||||
biddingResult: {
|
||||
/** 合同系统/选商/选商结果 分页查询 */
|
||||
get_page: (data?: QueryOptions) =>
|
||||
http.get('/app/biddingResult/page', data),
|
||||
/** 合同系统/选商/选商结果 保存 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/biddingResult/save', data),
|
||||
},
|
||||
home: {
|
||||
/** 合同系统/首页待办/已办 待办 */
|
||||
get_todo: (data?: QueryOptions) => http.get('/app/home/todo', data),
|
||||
},
|
||||
};
|
||||
|
|
|
@ -43,7 +43,7 @@ export function transferResponse(response: any) {
|
|||
code = 0;
|
||||
}
|
||||
|
||||
if (code == 'failure' || (msg && msg.includes('token无效'))) {
|
||||
if (code == 'failure' && msg && msg.includes('token无效')) {
|
||||
code = 401;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,21 +1,24 @@
|
|||
<script lang="ts" setup>
|
||||
import { computed } from "vue";
|
||||
import { computed } from 'vue';
|
||||
|
||||
import { useAntdDesignTokens } from "@vben/hooks";
|
||||
import { preferences, usePreferences } from "@vben/preferences";
|
||||
import { useAntdDesignTokens } from '@vben/hooks';
|
||||
import { preferences, usePreferences } from '@vben/preferences';
|
||||
|
||||
import { App, ConfigProvider, theme } from "ant-design-vue";
|
||||
import { App, ConfigProvider, theme } from 'ant-design-vue';
|
||||
|
||||
import { antdLocale } from "#/locales";
|
||||
import { useDictStore } from "./store/dict";
|
||||
import { antdLocale } from '#/locales';
|
||||
|
||||
defineOptions({ name: "App" });
|
||||
import { useDictStore } from './store/dict';
|
||||
|
||||
defineOptions({ name: 'App' });
|
||||
|
||||
const { isDark } = usePreferences();
|
||||
const { tokens } = useAntdDesignTokens();
|
||||
|
||||
const tokenTheme = computed(() => {
|
||||
const algorithm = isDark.value ? [theme.darkAlgorithm] : [theme.defaultAlgorithm];
|
||||
const algorithm = isDark.value
|
||||
? [theme.darkAlgorithm]
|
||||
: [theme.defaultAlgorithm];
|
||||
|
||||
// antd 紧凑模式算法
|
||||
if (preferences.app.compact) {
|
||||
|
@ -59,8 +62,6 @@ if (dictStore.initDict) {
|
|||
}
|
||||
|
||||
.ant-btn__warning {
|
||||
@apply bg-warning text-warning-foreground shadow hover:bg-warning/90;
|
||||
@apply bg-warning text-warning-foreground hover:bg-warning/90 shadow;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
|
|
|
@ -18,16 +18,16 @@ const routes: RouteRecordRaw[] = [
|
|||
path: '/supervise/edit/:id?',
|
||||
beforeEnter: (e) => {
|
||||
if (e.params.id && e.params.id === ':id') {
|
||||
e.params.id = ''
|
||||
e.fullPath = '/supervise/edit'
|
||||
e.params.id = '';
|
||||
e.fullPath = '/supervise/edit';
|
||||
}
|
||||
},
|
||||
component: () => import('#/views/supervise/edit/index.vue'),
|
||||
meta: {
|
||||
hideInMenu: true,
|
||||
hideInTab: true,
|
||||
icon: 'lucide:area-chart',
|
||||
title: '立项填报',
|
||||
activePath: '/contract/approval/edit/:id?',
|
||||
},
|
||||
},
|
||||
{
|
||||
|
@ -74,8 +74,8 @@ const routes: RouteRecordRaw[] = [
|
|||
path: '/meeting/edit/:id?',
|
||||
beforeEnter: (e) => {
|
||||
if (e.params.id && e.params.id === ':id') {
|
||||
e.params.id = ''
|
||||
e.fullPath = '/meeting/edit'
|
||||
e.params.id = '';
|
||||
e.fullPath = '/meeting/edit';
|
||||
}
|
||||
},
|
||||
component: () => import('#/views/meeting/edit/index.vue'),
|
||||
|
@ -112,8 +112,8 @@ const routes: RouteRecordRaw[] = [
|
|||
path: '/bussiness-trip/edit/:id?',
|
||||
beforeEnter: (e) => {
|
||||
if (e.params.id && e.params.id === ':id') {
|
||||
e.params.id = ''
|
||||
e.fullPath = '/bussiness-trip/edit'
|
||||
e.params.id = '';
|
||||
e.fullPath = '/bussiness-trip/edit';
|
||||
}
|
||||
},
|
||||
component: () => import('#/views/bussiness-trip/edit/index.vue'),
|
||||
|
@ -122,6 +122,7 @@ const routes: RouteRecordRaw[] = [
|
|||
hideInTab: true,
|
||||
icon: 'lucide:area-chart',
|
||||
title: '出差填报',
|
||||
activePath: '/bussiness-trip/list',
|
||||
},
|
||||
},
|
||||
{
|
||||
|
@ -212,7 +213,7 @@ const routes: RouteRecordRaw[] = [
|
|||
title: '值班管理',
|
||||
},
|
||||
},
|
||||
]
|
||||
],
|
||||
},
|
||||
{
|
||||
component: BasicLayout,
|
||||
|
|
|
@ -93,9 +93,9 @@ function mockLogin(username: string, password: string, isSkip: boolean = true) {
|
|||
<a-button @click="mockLogin('Admin.itl', 'ABC123')">超级管理员</a-button>
|
||||
<a-button @click="mockLogin('zhangxs.itl', 'Rlgs!6243910')">zxs</a-button>
|
||||
<a-button @click="mockLogin('zengp.itl', 'Rlgs!6243910')">zp</a-button>
|
||||
<a-button @click="mockLogin('rlqym', 'Rlgs!6243910', false)"
|
||||
>rlqym</a-button
|
||||
>
|
||||
<a-button @click="mockLogin('rlqym', 'Rlgs!6243910', false)">
|
||||
rlqym
|
||||
</a-button>
|
||||
</a-space>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
@ -1,36 +1,39 @@
|
|||
<script setup lang="ts">
|
||||
import { defineComponent, ref, computed, reactive, onMounted, nextTick } from "vue";
|
||||
import { nextTick, onMounted, ref } from 'vue';
|
||||
import { useRoute, useRouter } from 'vue-router';
|
||||
|
||||
import { Page, useVbenModal } from "@vben/common-ui";
|
||||
import { type FormScopeContext } from "@fast-crud/fast-crud";
|
||||
import { MdiUpload } from "@vben/icons";
|
||||
import { useRouter } from 'vue-router'
|
||||
import dayjs, { Dayjs } from "dayjs";
|
||||
import Apis from "#/api";
|
||||
import { message, Modal, type UploadChangeParam, type UploadProps } from 'ant-design-vue';
|
||||
import { useUserStore } from "@vben/stores";
|
||||
import { useRoute } from "vue-router";
|
||||
import { Page, useVbenModal } from '@vben/common-ui';
|
||||
import { MdiUpload } from '@vben/icons';
|
||||
import { useUserStore } from '@vben/stores';
|
||||
|
||||
import chooseUserModal from "#/views/system/user/choose-user-modal.vue";
|
||||
import { FileUploader } from "#/utils/file";
|
||||
import {
|
||||
message,
|
||||
Modal,
|
||||
type UploadChangeParam,
|
||||
type UploadProps,
|
||||
} from 'ant-design-vue';
|
||||
import { logger } from 'common-utils';
|
||||
import dayjs, { Dayjs } from 'dayjs';
|
||||
|
||||
import Apis from '#/api';
|
||||
import { FileUploader } from '#/utils/file';
|
||||
import chooseUserModal from '#/views/system/user/choose-user-modal.vue';
|
||||
|
||||
const fileUploader = new FileUploader({})
|
||||
const fileUploader = new FileUploader({});
|
||||
|
||||
const [ChooseUserModal, chooseUserModalApi] = useVbenModal({
|
||||
connectedComponent: chooseUserModal,
|
||||
});
|
||||
|
||||
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
let id = ref(route.params.id);
|
||||
const id = ref(route.params.id);
|
||||
|
||||
const containerRef = ref();
|
||||
const formRef = ref();
|
||||
const form2Ref = ref();
|
||||
|
||||
let isLoading = ref(false)
|
||||
const isLoading = ref(false);
|
||||
|
||||
function calculateDaysBetweenTimestamps(timestamp1, timestamp2) {
|
||||
const date1 = new Date(timestamp1);
|
||||
|
@ -47,116 +50,119 @@ function handleUpdateFormattedValue() {
|
|||
if (starttime && endtime) {
|
||||
const startTimestamp = new Date(starttime).getTime();
|
||||
const endTimestamp = new Date(endtime).getTime();
|
||||
const daysBetween = calculateDaysBetweenTimestamps(startTimestamp, endTimestamp);
|
||||
const daysBetween = calculateDaysBetweenTimestamps(
|
||||
startTimestamp,
|
||||
endTimestamp,
|
||||
);
|
||||
formRef.value.setFormData({
|
||||
days: daysBetween
|
||||
days: daysBetween,
|
||||
});
|
||||
|
||||
if (endtime <= starttime) {
|
||||
message.error('结束时间不能早于开始时间')
|
||||
message.error('结束时间不能早于开始时间');
|
||||
nextTick(() => {
|
||||
formRef.value.setFormData({
|
||||
starttime: "",
|
||||
days: "",
|
||||
})
|
||||
})
|
||||
starttime: '',
|
||||
days: '',
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const disabledDate = (current: Dayjs) => {
|
||||
// Can not select days before today and today
|
||||
let form = formRef.value.form;
|
||||
const form = formRef.value.form;
|
||||
return current < dayjs(form.starttime);
|
||||
}
|
||||
};
|
||||
|
||||
const formBinding = ref({
|
||||
col: { span: 24 },
|
||||
initialForm: {},
|
||||
labelCol: { style: { width: "120px" } },
|
||||
labelCol: { style: { width: '120px' } },
|
||||
columns: {
|
||||
starttime: {
|
||||
title: "出发时间",
|
||||
key: "starttime",
|
||||
title: '出发时间',
|
||||
key: 'starttime',
|
||||
component: {
|
||||
name: "a-date-picker",
|
||||
vModel: "value",
|
||||
name: 'a-date-picker',
|
||||
vModel: 'value',
|
||||
allowClear: false,
|
||||
showTime: { format: "HH:mm" },
|
||||
showTime: { format: 'HH:mm' },
|
||||
// disabledDate: (current) => current && current < dayjs().endOf("day"),
|
||||
format: "YYYY-MM-DD HH:mm",
|
||||
valueFormat: "YYYY-MM-DD HH:mm",
|
||||
format: 'YYYY-MM-DD HH:mm',
|
||||
valueFormat: 'YYYY-MM-DD HH:mm',
|
||||
onChange: (e) => {
|
||||
handleUpdateFormattedValue()
|
||||
}
|
||||
handleUpdateFormattedValue();
|
||||
},
|
||||
rules: [{ required: true, message: "请选择出发时间" }],
|
||||
},
|
||||
rules: [{ required: true, message: '请选择出发时间' }],
|
||||
},
|
||||
endtime: {
|
||||
title: "结束时间",
|
||||
key: "endtime",
|
||||
title: '结束时间',
|
||||
key: 'endtime',
|
||||
component: {
|
||||
name: "a-date-picker",
|
||||
vModel: "value",
|
||||
name: 'a-date-picker',
|
||||
vModel: 'value',
|
||||
allowClear: false,
|
||||
showTime: { format: "HH:mm" },
|
||||
disabledDate: disabledDate,
|
||||
showTime: { format: 'HH:mm' },
|
||||
disabledDate,
|
||||
onChange: (e) => {
|
||||
handleUpdateFormattedValue()
|
||||
handleUpdateFormattedValue();
|
||||
},
|
||||
format: "YYYY-MM-DD HH:mm",
|
||||
valueFormat: "YYYY-MM-DD HH:mm",
|
||||
format: 'YYYY-MM-DD HH:mm',
|
||||
valueFormat: 'YYYY-MM-DD HH:mm',
|
||||
},
|
||||
rules: [{ required: true, message: "请选择结束时间" }],
|
||||
rules: [{ required: true, message: '请选择结束时间' }],
|
||||
},
|
||||
days: {
|
||||
title: "出差天数",
|
||||
key: "days",
|
||||
title: '出差天数',
|
||||
key: 'days',
|
||||
col: { span: 24 },
|
||||
component: {
|
||||
name: "a-input-number",
|
||||
vModel: "value",
|
||||
name: 'a-input-number',
|
||||
vModel: 'value',
|
||||
min: 0,
|
||||
},
|
||||
},
|
||||
place: {
|
||||
title: "出差地点",
|
||||
key: "place",
|
||||
title: '出差地点',
|
||||
key: 'place',
|
||||
col: { span: 24 },
|
||||
component: {
|
||||
name: "a-textarea",
|
||||
vModel: "value",
|
||||
name: 'a-textarea',
|
||||
vModel: 'value',
|
||||
props: {},
|
||||
},
|
||||
rules: [{ required: true, message: "请输入出差地点" }],
|
||||
rules: [{ required: true, message: '请输入出差地点' }],
|
||||
},
|
||||
reasons: {
|
||||
title: "出差事项",
|
||||
key: "reasons",
|
||||
title: '出差事项',
|
||||
key: 'reasons',
|
||||
col: { span: 24 },
|
||||
component: {
|
||||
name: "a-textarea",
|
||||
vModel: "value",
|
||||
name: 'a-textarea',
|
||||
vModel: 'value',
|
||||
props: {},
|
||||
},
|
||||
},
|
||||
phone: {
|
||||
title: "联系方式",
|
||||
key: "phone",
|
||||
title: '联系方式',
|
||||
key: 'phone',
|
||||
col: { span: 24 },
|
||||
component: {
|
||||
name: "a-input",
|
||||
vModel: "value",
|
||||
name: 'a-input',
|
||||
vModel: 'value',
|
||||
props: {},
|
||||
},
|
||||
},
|
||||
remarks: {
|
||||
title: "备注",
|
||||
key: "remarks",
|
||||
title: '备注',
|
||||
key: 'remarks',
|
||||
col: { span: 24 },
|
||||
component: {
|
||||
name: "a-textarea",
|
||||
vModel: "value",
|
||||
name: 'a-textarea',
|
||||
vModel: 'value',
|
||||
props: {},
|
||||
},
|
||||
},
|
||||
|
@ -165,24 +171,23 @@ const formBinding = ref({
|
|||
|
||||
const form2Binding = ref({
|
||||
col: { span: 24 },
|
||||
initialForm: {
|
||||
},
|
||||
labelCol: { style: { width: "120px" } },
|
||||
initialForm: {},
|
||||
labelCol: { style: { width: '120px' } },
|
||||
columns: {
|
||||
fileList: {
|
||||
title: "附件上传",
|
||||
key: "fileList",
|
||||
title: '附件上传',
|
||||
key: 'fileList',
|
||||
},
|
||||
},
|
||||
}
|
||||
});
|
||||
|
||||
const beforeUpload: UploadProps["beforeUpload"] = (file) => {
|
||||
const beforeUpload: UploadProps['beforeUpload'] = (file) => {
|
||||
return false;
|
||||
};
|
||||
|
||||
function handleBack() {
|
||||
Modal.confirm({
|
||||
title: "提示",
|
||||
title: '提示',
|
||||
content: `是否确认返回上一页面?`,
|
||||
onOk: async () => {
|
||||
back();
|
||||
|
@ -194,154 +199,167 @@ function handleBack() {
|
|||
* 页面返回并关闭tab
|
||||
*/
|
||||
function back() {
|
||||
router.replace('/bussiness-trip/list')
|
||||
router.replace('/bussiness-trip/list');
|
||||
}
|
||||
|
||||
const handleChange = (info: UploadChangeParam) => {
|
||||
form2Ref.value.setFormData({
|
||||
fileList: info.fileList.length ? info.fileList : [],
|
||||
fileList: info.fileList.length > 0 ? info.fileList : [],
|
||||
});
|
||||
};
|
||||
|
||||
const chooseUserIds = ref([]);
|
||||
|
||||
async function handleChooseUserConfirm(e) {
|
||||
console.log(e);
|
||||
chooseUserModalApi.close();
|
||||
isLoading.value = true
|
||||
isLoading.value = true;
|
||||
try {
|
||||
await Apis.ccsq.post_startWorkFlow({data:{
|
||||
guid:id.value,
|
||||
assigneeList: e.map(item=>item.ACCOUNT_ID)
|
||||
}})
|
||||
message.success("提交成功")
|
||||
back()
|
||||
// 先查询相关节点信息
|
||||
|
||||
// const nodeInfo = await getNodeInfo(nodeId);
|
||||
chooseUserIds.value = e.map((item) => item.ACCOUNT_ID);
|
||||
await Apis.ccsq.post_startWorkFlow({
|
||||
data: {
|
||||
guid: id.value,
|
||||
assigneeList: chooseUserIds.value,
|
||||
},
|
||||
});
|
||||
message.success('提交成功');
|
||||
back();
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
message.error("提交失败,请稍候再试")
|
||||
}finally{
|
||||
isLoading.value = false
|
||||
logger.error('合同立项提交失败', error);
|
||||
message.error('提交失败,请稍候再试');
|
||||
} finally {
|
||||
isLoading.value = false;
|
||||
}
|
||||
}
|
||||
|
||||
async function handleSave() {
|
||||
isLoading.value = true
|
||||
isLoading.value = true;
|
||||
|
||||
try {
|
||||
let form = formRef.value.form;
|
||||
const form = formRef.value.form;
|
||||
// await formRef.value.submit()
|
||||
console.log(formRef.value)
|
||||
const userStore = useUserStore()
|
||||
console.log(formRef.value);
|
||||
const userStore = useUserStore();
|
||||
|
||||
form.applyName = userStore.userInfo.gwmc;
|
||||
form.applyId = userStore.userInfo.userId;
|
||||
form.applyTime = dayjs().format("YYYY-MM-DD HH:mm:ss");
|
||||
form.applyTime = dayjs().format('YYYY-MM-DD HH:mm:ss');
|
||||
|
||||
console.log(form2Ref.value.form)
|
||||
let fileList = form2Ref.value.form.fileList
|
||||
let files: any = []
|
||||
if (fileList && fileList.length) {
|
||||
files = await fileUploader.upload(fileList, { source: 'erp' })
|
||||
console.log(form2Ref.value.form);
|
||||
const fileList = form2Ref.value.form.fileList;
|
||||
let files: any = [];
|
||||
if (fileList && fileList.length > 0) {
|
||||
files = await fileUploader.upload(fileList, { source: 'erp' });
|
||||
}
|
||||
console.log(files)
|
||||
console.log(files);
|
||||
if (files) {
|
||||
form.fileUuid = (files.map((item) => item.fileUuid) || []).join(',')
|
||||
form.fileUuid = (files.map((item) => item.fileUuid) || []).join(',');
|
||||
}
|
||||
await Apis.ccsq.post_save({ data: form }).then((data) => {
|
||||
id.value = data.guid
|
||||
message.success("保存成功");
|
||||
const data = await Apis.ccsq.post_save({ data: form });
|
||||
id.value = data.guid;
|
||||
message.success('保存成功');
|
||||
Modal.confirm({
|
||||
title: "提示",
|
||||
content: "保存成功!是否选择审批人进行提交?",
|
||||
title: '提示',
|
||||
content: '保存成功!是否选择审批人进行提交?',
|
||||
onOk: () => {
|
||||
handleSubmit()
|
||||
handleSubmit();
|
||||
},
|
||||
onCancel: () => {
|
||||
back();
|
||||
},
|
||||
});
|
||||
});
|
||||
} catch (error) {
|
||||
message.error("提交失败,请稍候再试");
|
||||
console.log(error)
|
||||
message.error('提交失败,请稍候再试');
|
||||
console.log(error);
|
||||
} finally {
|
||||
isLoading.value = false
|
||||
isLoading.value = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function handleSubmit() {
|
||||
// isLoading.value = true
|
||||
chooseUserModalApi.setData({
|
||||
title: "选择审批人",
|
||||
})
|
||||
chooseUserModalApi.open()
|
||||
title: '选择审批人',
|
||||
userIds: chooseUserIds.value || [],
|
||||
});
|
||||
chooseUserModalApi.open();
|
||||
}
|
||||
|
||||
onMounted(async () => {
|
||||
isLoading.value = true
|
||||
console.log(id.value)
|
||||
isLoading.value = true;
|
||||
console.log(id.value);
|
||||
try {
|
||||
if (id.value) {
|
||||
let data = await Apis.ccsq.get_page({ params: { guid: id } })
|
||||
data = data.rows[0]
|
||||
formRef.value.setFormData(data)
|
||||
let data = await Apis.ccsq.get_page({ params: { guid: id.value } });
|
||||
data = data.rows[0];
|
||||
formRef.value.setFormData(data);
|
||||
|
||||
if (data.fileUuid) {
|
||||
let files = await fileUploader.select(data.fileUuid)
|
||||
console.log(files)
|
||||
form2Ref.value.setFormData({
|
||||
fileList: files
|
||||
}, 50)
|
||||
|
||||
const files = await fileUploader.select(data.fileUuid);
|
||||
console.log(files);
|
||||
form2Ref.value.setFormData(
|
||||
{
|
||||
fileList: files,
|
||||
},
|
||||
50,
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
|
||||
Modal.error({
|
||||
title: "提示",
|
||||
content: "当前出差申请不存在",
|
||||
title: '提示',
|
||||
content: '当前出差申请不存在',
|
||||
onOk() {
|
||||
back();
|
||||
},
|
||||
});
|
||||
} finally {
|
||||
isLoading.value = false
|
||||
isLoading.value = false;
|
||||
}
|
||||
|
||||
|
||||
})
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Page
|
||||
id="components-affix-demo-target"
|
||||
ref="containerRef"
|
||||
contentClass="h-full flex flex-col overflow-y-scroll"
|
||||
content-class="h-full flex flex-col overflow-y-scroll"
|
||||
>
|
||||
<ChooseUserModal class="w-[950px]" multiple @confirm="handleChooseUserConfirm" />
|
||||
<ChooseUserModal
|
||||
class="w-[950px]"
|
||||
multiple
|
||||
@confirm="handleChooseUserConfirm"
|
||||
/>
|
||||
|
||||
<a-spin :spinning="isLoading">
|
||||
<a-space>
|
||||
<vben-button variant="primary" @click="handleSave()">保存</vben-button>
|
||||
<vben-button variant="primary" @click="handleSubmit()">提交</vben-button>
|
||||
<vben-button variant="secondary" @click="handleBack()">返回</vben-button>
|
||||
<vben-button variant="primary" @click="handleSubmit()">
|
||||
提交
|
||||
</vben-button>
|
||||
<vben-button variant="secondary" @click="handleBack()">
|
||||
返回
|
||||
</vben-button>
|
||||
</a-space>
|
||||
<div class="mx-auto w-[60%] min-w-[600px] h-[75vh] overflow-auto">
|
||||
<div class="mx-auto h-[75vh] w-[60%] min-w-[600px] overflow-auto">
|
||||
<a-space direction="vertical">
|
||||
<a-card title="基本信息" size="small">
|
||||
<fs-form ref="formRef" v-bind="formBinding"> </fs-form>
|
||||
<a-card size="small" title="基本信息">
|
||||
<fs-form ref="formRef" v-bind="formBinding" />
|
||||
</a-card>
|
||||
|
||||
<a-card title="相关附件" size="small">
|
||||
<a-card size="small" title="相关附件">
|
||||
<fs-form ref="form2Ref" v-bind="form2Binding">
|
||||
<template #form_fileList="scope">
|
||||
<a-upload
|
||||
v-model:fileList="scope.form.fileList"
|
||||
accept=".pdf"
|
||||
:max-count="3"
|
||||
name="file"
|
||||
v-model:file-list="scope.form.fileList"
|
||||
:before-upload="beforeUpload"
|
||||
:max-count="3"
|
||||
accept=".pdf"
|
||||
name="file"
|
||||
@change="handleChange"
|
||||
>
|
||||
<vben-button variant="secondary">
|
||||
|
|
|
@ -1,64 +1,5 @@
|
|||
<template>
|
||||
<Page contentClass="h-full flex flex-col">
|
||||
<SubmitModal class="w-[600px]" title="选择送审人" :loading="isConfirmLoading" :confirmLoading="isConfirmLoading">
|
||||
<a-radio-group v-model:value="checkedValue">
|
||||
<a-radio :style="radioStyle" value="all">导出全部</a-radio>
|
||||
<a-radio :style="radioStyle" value="daterange">
|
||||
导出时间范围
|
||||
<div class="ml-2">
|
||||
<a-range-picker v-model:value="exportSearchParams.daterange" format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD" />
|
||||
</div>
|
||||
</a-radio>
|
||||
</a-radio-group>
|
||||
</SubmitModal>
|
||||
|
||||
<fs-search ref="searchRef" v-bind="searchForm"> </fs-search>
|
||||
<div class="flex-1 min-h-300px">
|
||||
<vxe-grid ref="xGridRef" v-bind="gridOptions" @cell-click="handleCellClick">
|
||||
<template #toolbar_buttons>
|
||||
<a-space>
|
||||
<vben-button variant="primary" @click="handleAdd()">
|
||||
<MdiAdd class="text-lg mr-0.5" />
|
||||
新增
|
||||
</vben-button>
|
||||
<vben-button variant="warning" :disabled="!selectRow || !selectRow['guid']"
|
||||
@click="handleUpdate(selectRow)">
|
||||
<MdiUpdate class="text-lg mr-0.5" />
|
||||
修改
|
||||
</vben-button>
|
||||
<vben-button variant="primary" @click="handleExport()">
|
||||
<MdiExport class="text-lg mr-0.5" />
|
||||
导出
|
||||
</vben-button>
|
||||
<vben-button variant="destructive" :disabled="!selectRow || !selectRow['guid']"
|
||||
@click="handleDelete(selectRow)">
|
||||
<MdiDelete class="text-lg mr-0.5" />
|
||||
删除
|
||||
</vben-button>
|
||||
</a-space>
|
||||
</template>
|
||||
|
||||
<template #radio_cell="{ row, checked }">
|
||||
<span class="text-base" @click.stop="setSelectRow(row)">
|
||||
<MdiRadioChecked v-if="checked" />
|
||||
<MdiRadioUnchecked v-else />
|
||||
</span>
|
||||
</template>
|
||||
|
||||
<template #baseSlot="{ row }">
|
||||
<p>开始时间:{{ row.starttime }}</p>
|
||||
<p>结束时间:{{ row.endtime }}</p>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
</div>
|
||||
</Page>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { defineComponent, ref, computed, reactive, onMounted } from 'vue';
|
||||
import { FsCrud } from '@fast-crud/fast-crud';
|
||||
import { type VxeGridProps } from 'vxe-table'
|
||||
import { Page, useVbenModal } from '@vben/common-ui';
|
||||
import { useVxeTable } from '#/hooks/vxeTable';
|
||||
import {
|
||||
|
@ -68,20 +9,27 @@ import {
|
|||
useFs,
|
||||
utils,
|
||||
} from '@fast-crud/fast-crud';
|
||||
import { MdiAdd, MdiUpdate, MdiDelete, MdiImport, MdiExport, MdiRadioUnchecked, MdiRadioChecked } from '@vben/icons';
|
||||
import {
|
||||
MdiAdd,
|
||||
MdiUpdate,
|
||||
MdiDelete,
|
||||
MdiExport,
|
||||
MdiRadioUnchecked,
|
||||
MdiRadioChecked,
|
||||
} from '@vben/icons';
|
||||
import { getColumns } from './crud.tsx';
|
||||
import { dict } from "@fast-crud/fast-crud";
|
||||
import { getMonthStartAndEnd } from '#/utils/time'
|
||||
import Apis from '#/api'
|
||||
import { dict } from '@fast-crud/fast-crud';
|
||||
import { getMonthStartAndEnd } from '#/utils/time';
|
||||
import Apis from '#/api';
|
||||
import dayjs from 'dayjs';
|
||||
import { message } from "ant-design-vue";
|
||||
import { message } from 'ant-design-vue';
|
||||
import { Modal } from 'ant-design-vue';
|
||||
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useRouter } from 'vue-router';
|
||||
|
||||
const router = useRouter();
|
||||
|
||||
const checkedValue = ref('all')
|
||||
const checkedValue = ref('all');
|
||||
const exportSearchParams = ref<any>({
|
||||
daterange: getMonthStartAndEnd(),
|
||||
});
|
||||
|
@ -91,91 +39,56 @@ const radioStyle = reactive({
|
|||
lineHeight: '30px',
|
||||
});
|
||||
|
||||
const searchRef = ref()
|
||||
let isConfirmLoading = ref(false)
|
||||
const [SubmitModal, submitModalApi] = useVbenModal({
|
||||
async onConfirm() {
|
||||
isConfirmLoading.value = true
|
||||
|
||||
try {
|
||||
let params = {};
|
||||
if (checkedValue.value == "daterange") {
|
||||
params = {
|
||||
startDate: exportSearchParams.value.daterange[0],
|
||||
endDate: exportSearchParams.value.daterange[1],
|
||||
};
|
||||
}
|
||||
let res = await Apis.zbgl.post_export({
|
||||
params: params, config: {
|
||||
meta: {
|
||||
responseType: 'blob'
|
||||
}
|
||||
}
|
||||
}).send();
|
||||
message.success("导出成功");
|
||||
modalApi.close()
|
||||
showExportModal.value = false;
|
||||
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
} finally {
|
||||
isConfirmLoading.value = false
|
||||
}
|
||||
|
||||
|
||||
console.info("onConfirm");
|
||||
},
|
||||
});
|
||||
|
||||
const searchRef = ref();
|
||||
let isConfirmLoading = ref(false);
|
||||
|
||||
const { xGridRef, triggerProxy, gridProps } = useVxeTable({ ref: 'xGridRef' });
|
||||
|
||||
const treeData = ref([]);
|
||||
|
||||
/** Hooks - 表格 */
|
||||
const gridOptions = reactive(gridProps({
|
||||
const gridOptions = reactive(
|
||||
gridProps({
|
||||
columns: getColumns(),
|
||||
proxyConfig: {
|
||||
autoLoad: false,
|
||||
ajax: {
|
||||
query: ({ page }) => {
|
||||
return Apis.ccsq.get_page({ params: { pageNum: page.currentPage, pageSize: page.pageSize, ...searchRef.value?.formData } })
|
||||
}
|
||||
query: async ({ page }) => {
|
||||
const data = await Apis.ccsq.get_page({
|
||||
params: {
|
||||
pageNum: page.currentPage,
|
||||
pageSize: page.pageSize,
|
||||
...searchRef.value?.formData,
|
||||
},
|
||||
});
|
||||
return data;
|
||||
},
|
||||
},
|
||||
},
|
||||
pagerConfig: {
|
||||
enabled: true
|
||||
enabled: true,
|
||||
},
|
||||
toolbarConfig: {
|
||||
enabled: true
|
||||
enabled: true,
|
||||
},
|
||||
}));
|
||||
}),
|
||||
);
|
||||
|
||||
function handleAdd() {
|
||||
router.push('/bussiness-trip/edit')
|
||||
router.push('/bussiness-trip/edit');
|
||||
}
|
||||
|
||||
function handleUpdate(row) {
|
||||
router.push('/bussiness-trip/edit/' + row['guid'])
|
||||
}
|
||||
|
||||
function handleUpload() {
|
||||
// modalApi.setData({
|
||||
// content: '外部传递的数据 content',
|
||||
// payload: '外部传递的数据 payload',
|
||||
// });
|
||||
uploadModalApi.open();
|
||||
router.push('/bussiness-trip/edit/' + row['guid']);
|
||||
}
|
||||
|
||||
function handleDelete(row) {
|
||||
Modal.confirm({
|
||||
title: '提示',
|
||||
content: "是否确认删除该条记录?",
|
||||
content: '是否确认删除该条记录?',
|
||||
okType: 'danger',
|
||||
onOk: async () => {
|
||||
await Apis.zbgl.get_deletes({ params: { ids: row['guid'] } })
|
||||
message.success("删除成功");
|
||||
triggerProxy("reload");
|
||||
await Apis.ccsq.post_deletes({ params: { ids: row['guid'] } });
|
||||
message.success('删除成功');
|
||||
triggerProxy('reload');
|
||||
},
|
||||
onCancel() {
|
||||
console.log('Cancel');
|
||||
|
@ -187,19 +100,19 @@ function handleExport() {
|
|||
const $grid = xGridRef.value;
|
||||
if ($grid) {
|
||||
$grid.exportData({
|
||||
type: "xlsx",
|
||||
type: 'xlsx',
|
||||
});
|
||||
message.success("导出成功");
|
||||
message.success('导出成功');
|
||||
}
|
||||
}
|
||||
|
||||
/** 选中数据 */
|
||||
const selectRow: Recordable = computed(() => {
|
||||
const selectRow: ant = computed(() => {
|
||||
return xGridRef.value?.getRadioRecord() || null;
|
||||
});
|
||||
|
||||
/** 单选框选中事件 */
|
||||
const setSelectRow = (row: Recordable) => {
|
||||
const setSelectRow = (row: ant) => {
|
||||
if (selectRow.value && selectRow.value['guid'] === row['guid']) {
|
||||
xGridRef.value?.clearRadioRow();
|
||||
} else {
|
||||
|
@ -213,13 +126,11 @@ function handleCellClick({ row }) {
|
|||
}
|
||||
|
||||
onMounted(() => {
|
||||
triggerProxy('reload')
|
||||
})
|
||||
triggerProxy('reload');
|
||||
});
|
||||
|
||||
let searchParams = reactive({})
|
||||
const searchForm = ref({
|
||||
initialForm: {
|
||||
},
|
||||
initialForm: {},
|
||||
columns: {
|
||||
startDate: {
|
||||
title: '开始日期',
|
||||
|
@ -252,15 +163,82 @@ const searchForm = ref({
|
|||
show: true,
|
||||
},
|
||||
},
|
||||
onSearch(context: any) {
|
||||
console.log(searchRef.value)
|
||||
triggerProxy('reload')
|
||||
},
|
||||
onReset(context: any) {
|
||||
searchParams = context.form
|
||||
onSearch(_context: any) {
|
||||
triggerProxy('reload');
|
||||
},
|
||||
});
|
||||
// 页面打开后获取列表数据
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Page contentClass="h-full flex flex-col">
|
||||
<SubmitModal
|
||||
class="w-[600px]"
|
||||
title="选择送审人"
|
||||
:loading="isConfirmLoading"
|
||||
:confirmLoading="isConfirmLoading"
|
||||
>
|
||||
<a-radio-group v-model:value="checkedValue">
|
||||
<a-radio :style="radioStyle" value="all">导出全部</a-radio>
|
||||
<a-radio :style="radioStyle" value="daterange">
|
||||
导出时间范围
|
||||
<div class="ml-2">
|
||||
<a-range-picker
|
||||
v-model:value="exportSearchParams.daterange"
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
/>
|
||||
</div>
|
||||
</a-radio>
|
||||
</a-radio-group>
|
||||
</SubmitModal>
|
||||
|
||||
<fs-search ref="searchRef" v-bind="searchForm"> </fs-search>
|
||||
<div class="min-h-300px flex-1">
|
||||
<vxe-grid ref="xGridRef" v-bind="gridOptions" @cell-click="handleCellClick">
|
||||
<template #toolbar_buttons>
|
||||
<a-space>
|
||||
<vben-button variant="primary" @click="handleAdd()">
|
||||
<MdiAdd class="mr-0.5 text-lg" />
|
||||
新增
|
||||
</vben-button>
|
||||
<vben-button
|
||||
variant="warning"
|
||||
:disabled="!selectRow || !selectRow['guid']"
|
||||
@click="handleUpdate(selectRow)"
|
||||
>
|
||||
<MdiUpdate class="mr-0.5 text-lg" />
|
||||
修改
|
||||
</vben-button>
|
||||
<vben-button variant="primary" @click="handleExport()">
|
||||
<MdiExport class="mr-0.5 text-lg" />
|
||||
导出
|
||||
</vben-button>
|
||||
<vben-button
|
||||
variant="destructive"
|
||||
:disabled="!selectRow || !selectRow['guid']"
|
||||
@click="handleDelete(selectRow)"
|
||||
>
|
||||
<MdiDelete class="mr-0.5 text-lg" />
|
||||
删除
|
||||
</vben-button>
|
||||
</a-space>
|
||||
</template>
|
||||
|
||||
<template #radio_cell="{ row, checked }">
|
||||
<span class="text-base" @click.stop="setSelectRow(row)">
|
||||
<MdiRadioChecked v-if="checked" />
|
||||
<MdiRadioUnchecked v-else />
|
||||
</span>
|
||||
</template>
|
||||
|
||||
<template #baseSlot="{ row }">
|
||||
<p>开始时间:{{ row.starttime }}</p>
|
||||
<p>结束时间:{{ row.endtime }}</p>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
</div>
|
||||
</Page>
|
||||
</template>
|
||||
|
||||
<style></style>
|
||||
|
|
|
@ -1,25 +1,29 @@
|
|||
<script setup lang="ts">
|
||||
import { ref, computed, reactive, onMounted, nextTick, onUnmounted } from "vue";
|
||||
import { nextTick, onMounted, ref } from 'vue';
|
||||
import { useRoute, useRouter } from 'vue-router';
|
||||
|
||||
import { Page, useVbenModal } from "@vben/common-ui";
|
||||
import { dict, type FormScopeContext } from "@fast-crud/fast-crud";
|
||||
import { MdiUpload } from "@vben/icons";
|
||||
import { useRouter } from 'vue-router'
|
||||
import dayjs, { Dayjs } from "dayjs";
|
||||
import Apis from "#/api";
|
||||
import { MdiAdd, MdiUpdate, MdiDelete, MdiImport, MdiExport, MdiRadioUnchecked, MdiRadioChecked } from '@vben/icons';
|
||||
import { Page, useVbenModal } from '@vben/common-ui';
|
||||
import { MdiUpload } from '@vben/icons';
|
||||
import { useUserStore } from '@vben/stores';
|
||||
|
||||
import { message, Modal, type UploadChangeParam, type UploadProps } from 'ant-design-vue';
|
||||
import { useUserStore } from "@vben/stores";
|
||||
import { useRoute } from "vue-router";
|
||||
import chooseUserModal from "#/views/system/user/choose-user-modal.vue";
|
||||
import { FileUploader } from "#/utils/file";
|
||||
import { DICT_TYPE, getDictOptions } from "#/utils/dict";
|
||||
import { useVxeTable } from "#/hooks/vxeTable";
|
||||
import { dict } from '@fast-crud/fast-crud';
|
||||
import {
|
||||
message,
|
||||
Modal,
|
||||
type UploadChangeParam,
|
||||
type UploadProps,
|
||||
} from 'ant-design-vue';
|
||||
import dayjs, { Dayjs } from 'dayjs';
|
||||
|
||||
const { xGridRef, gridProps, triggerProxy } = useVxeTable({ ref: "xGridRef" });
|
||||
import Apis from '#/api';
|
||||
import { useVxeTable } from '#/hooks/vxeTable';
|
||||
import { DICT_TYPE, getDictOptions } from '#/utils/dict';
|
||||
import { FileUploader } from '#/utils/file';
|
||||
import chooseUserModal from '#/views/system/user/choose-user-modal.vue';
|
||||
|
||||
const fileUploader = new FileUploader({})
|
||||
const { xGridRef, gridProps, triggerProxy } = useVxeTable({ ref: 'xGridRef' });
|
||||
|
||||
const fileUploader = new FileUploader({});
|
||||
|
||||
const [ChooseUserModal, chooseUserModalApi] = useVbenModal({
|
||||
connectedComponent: chooseUserModal,
|
||||
|
@ -29,163 +33,161 @@ const router = useRouter();
|
|||
const route = useRoute();
|
||||
const id = route.params.id;
|
||||
|
||||
let showHelpTip = ref(false);
|
||||
const showHelpTip = ref(false);
|
||||
|
||||
const containerRef = ref();
|
||||
const formRef = ref();
|
||||
const form2Ref = ref();
|
||||
|
||||
let isLoading = ref(false)
|
||||
const isLoading = ref(false);
|
||||
|
||||
function handleUpdateFormattedValue() {
|
||||
const { starttime, endtime } = formRef.value.form;
|
||||
|
||||
if (starttime && endtime) {
|
||||
if (endtime <= starttime) {
|
||||
message.error('截止时间不能早于开始时间')
|
||||
if (starttime && endtime && endtime <= starttime) {
|
||||
message.error('截止时间不能早于开始时间');
|
||||
nextTick(() => {
|
||||
formRef.value.setFormData({
|
||||
starttime: "",
|
||||
})
|
||||
})
|
||||
}
|
||||
starttime: '',
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
const disabledDate = (current: Dayjs) => {
|
||||
// Can not select days before today and today
|
||||
let form = formRef.value.form;
|
||||
const form = formRef.value.form;
|
||||
return current < dayjs(form.starttime);
|
||||
}
|
||||
};
|
||||
|
||||
const formBinding = ref({
|
||||
col: { span: 24 },
|
||||
initialForm: {},
|
||||
labelCol: { style: { width: "120px" } },
|
||||
labelCol: { style: { width: '120px' } },
|
||||
columns: {
|
||||
taskName: {
|
||||
title: "任务标题",
|
||||
key: "taskName",
|
||||
title: '任务标题',
|
||||
key: 'taskName',
|
||||
col: { span: 24 },
|
||||
component: {
|
||||
name: "a-input",
|
||||
vModel: "value",
|
||||
name: 'a-input',
|
||||
vModel: 'value',
|
||||
},
|
||||
rules: [{ required: true, message: "请输入任务标题" }],
|
||||
rules: [{ required: true, message: '请输入任务标题' }],
|
||||
},
|
||||
taskType: {
|
||||
title: "任务类别",
|
||||
key: "taskType",
|
||||
title: '任务类别',
|
||||
key: 'taskType',
|
||||
col: { span: 12 },
|
||||
component: {
|
||||
name: "fs-dict-select",
|
||||
vModel: "value",
|
||||
name: 'fs-dict-select',
|
||||
vModel: 'value',
|
||||
dict: dict({
|
||||
data: getDictOptions(DICT_TYPE.supervise_task_type)
|
||||
data: getDictOptions(DICT_TYPE.supervise_task_type),
|
||||
}),
|
||||
},
|
||||
rules: [{ required: true, message: "请选择任务类别" }],
|
||||
rules: [{ required: true, message: '请选择任务类别' }],
|
||||
},
|
||||
urgentDegree: {
|
||||
title: "紧急程度",
|
||||
key: "urgentDegree",
|
||||
title: '紧急程度',
|
||||
key: 'urgentDegree',
|
||||
col: { span: 12 },
|
||||
component: {
|
||||
name: "fs-dict-select",
|
||||
vModel: "value",
|
||||
name: 'fs-dict-select',
|
||||
vModel: 'value',
|
||||
dict: dict({
|
||||
data: getDictOptions(DICT_TYPE.supervise_emergency_level)
|
||||
data: getDictOptions(DICT_TYPE.supervise_emergency_level),
|
||||
}),
|
||||
},
|
||||
},
|
||||
|
||||
starttime: {
|
||||
title: "开始时间",
|
||||
key: "starttime",
|
||||
title: '开始时间',
|
||||
key: 'starttime',
|
||||
col: { span: 12 },
|
||||
component: {
|
||||
name: "a-date-picker",
|
||||
vModel: "value",
|
||||
name: 'a-date-picker',
|
||||
vModel: 'value',
|
||||
allowClear: false,
|
||||
showTime: { format: "HH:mm" },
|
||||
showTime: { format: 'HH:mm' },
|
||||
// disabledDate: (current) => current && current < dayjs().endOf("day"),
|
||||
format: "YYYY-MM-DD HH:mm",
|
||||
valueFormat: "YYYY-MM-DD HH:mm",
|
||||
format: 'YYYY-MM-DD HH:mm',
|
||||
valueFormat: 'YYYY-MM-DD HH:mm',
|
||||
onChange: (e) => {
|
||||
handleUpdateFormattedValue()
|
||||
}
|
||||
handleUpdateFormattedValue();
|
||||
},
|
||||
rules: [{ required: true, message: "请选择开始时间" }],
|
||||
},
|
||||
rules: [{ required: true, message: '请选择开始时间' }],
|
||||
},
|
||||
endtime: {
|
||||
title: "截止时间",
|
||||
key: "endtime",
|
||||
title: '截止时间',
|
||||
key: 'endtime',
|
||||
col: { span: 12 },
|
||||
component: {
|
||||
name: "a-date-picker",
|
||||
vModel: "value",
|
||||
name: 'a-date-picker',
|
||||
vModel: 'value',
|
||||
allowClear: false,
|
||||
showTime: { format: "HH:mm" },
|
||||
disabledDate: disabledDate,
|
||||
showTime: { format: 'HH:mm' },
|
||||
disabledDate,
|
||||
onChange: (e) => {
|
||||
handleUpdateFormattedValue()
|
||||
handleUpdateFormattedValue();
|
||||
},
|
||||
format: "YYYY-MM-DD HH:mm",
|
||||
valueFormat: "YYYY-MM-DD HH:mm",
|
||||
format: 'YYYY-MM-DD HH:mm',
|
||||
valueFormat: 'YYYY-MM-DD HH:mm',
|
||||
},
|
||||
rules: [{ required: true, message: "请选择截止时间" }],
|
||||
rules: [{ required: true, message: '请选择截止时间' }],
|
||||
},
|
||||
planFinishTime: {
|
||||
title: "预计完成时间",
|
||||
key: "endtime",
|
||||
title: '预计完成时间',
|
||||
key: 'endtime',
|
||||
component: {
|
||||
name: "a-date-picker",
|
||||
vModel: "value",
|
||||
name: 'a-date-picker',
|
||||
vModel: 'value',
|
||||
allowClear: false,
|
||||
showTime: { format: "HH:mm" },
|
||||
disabledDate: disabledDate,
|
||||
showTime: { format: 'HH:mm' },
|
||||
disabledDate,
|
||||
onChange: (e) => {
|
||||
handleUpdateFormattedValue()
|
||||
handleUpdateFormattedValue();
|
||||
},
|
||||
format: "YYYY-MM-DD HH:mm",
|
||||
valueFormat: "YYYY-MM-DD HH:mm",
|
||||
format: 'YYYY-MM-DD HH:mm',
|
||||
valueFormat: 'YYYY-MM-DD HH:mm',
|
||||
},
|
||||
rules: [{ required: true, message: "请选择预计完成时间" }],
|
||||
rules: [{ required: true, message: '请选择预计完成时间' }],
|
||||
},
|
||||
taskContent: {
|
||||
title: "任务内容",
|
||||
key: "taskContent",
|
||||
title: '任务内容',
|
||||
key: 'taskContent',
|
||||
col: { span: 24 },
|
||||
component: {
|
||||
name: "a-textarea",
|
||||
vModel: "value",
|
||||
name: 'a-textarea',
|
||||
vModel: 'value',
|
||||
},
|
||||
rules: [{ required: true, message: "请输入任务内容" }],
|
||||
rules: [{ required: true, message: '请输入任务内容' }],
|
||||
},
|
||||
taskProgress: {
|
||||
title: "任务进度",
|
||||
key: "taskProgress",
|
||||
title: '任务进度',
|
||||
key: 'taskProgress',
|
||||
col: { span: 24 },
|
||||
component: {
|
||||
name: "a-textarea",
|
||||
vModel: "value",
|
||||
name: 'a-textarea',
|
||||
vModel: 'value',
|
||||
},
|
||||
rules: [{ required: true, message: "请输入任务进度" }],
|
||||
rules: [{ required: true, message: '请输入任务进度' }],
|
||||
},
|
||||
fileList: {
|
||||
title: "相关附件",
|
||||
key: "fileList",
|
||||
title: '相关附件',
|
||||
key: 'fileList',
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
const beforeUpload: UploadProps["beforeUpload"] = (file) => {
|
||||
const beforeUpload: UploadProps['beforeUpload'] = (file) => {
|
||||
return false;
|
||||
};
|
||||
|
||||
function handleBack() {
|
||||
Modal.confirm({
|
||||
title: "提示",
|
||||
title: '提示',
|
||||
content: `是否确认返回上一页面?`,
|
||||
onOk: async () => {
|
||||
back();
|
||||
|
@ -197,24 +199,26 @@ function handleBack() {
|
|||
* 页面返回并关闭tab
|
||||
*/
|
||||
function back() {
|
||||
router.replace('/supervise/list')
|
||||
router.replace('/supervise/list');
|
||||
}
|
||||
|
||||
const handleChange = (info: UploadChangeParam) => {
|
||||
formRef.value.setFormData({
|
||||
fileList: info.fileList.length ? info.fileList : [],
|
||||
fileList: info.fileList.length > 0 ? info.fileList : [],
|
||||
});
|
||||
};
|
||||
|
||||
function handleDelete() {
|
||||
Modal.confirm({
|
||||
title: '提示',
|
||||
content: "是否确认删除该条记录?",
|
||||
content: '是否确认删除该条记录?',
|
||||
okType: 'danger',
|
||||
onOk: async () => {
|
||||
await Apis.meeting.post_deletes({ params: { ids: currData.value['guid'] } })
|
||||
message.success("删除成功");
|
||||
back()
|
||||
await Apis.meeting.post_deletes({
|
||||
params: { ids: currData.value.guid },
|
||||
});
|
||||
message.success('删除成功');
|
||||
back();
|
||||
},
|
||||
});
|
||||
}
|
||||
|
@ -224,128 +228,137 @@ function handleDelete() {
|
|||
* @param rows
|
||||
*/
|
||||
function handleChooseUserConfirm(rows) {
|
||||
console.log("[ rows ] >", rows);
|
||||
rows.forEach((element) => {
|
||||
|
||||
});
|
||||
console.log('[ rows ] >', rows);
|
||||
rows.forEach((element) => {});
|
||||
const $grid = xGridRef.value;
|
||||
// 判断上一个新增项有无完成,未完成则不允许新增
|
||||
if ($grid) {
|
||||
$grid.remove();
|
||||
$grid.insert(rows).then(({ row }) => { });
|
||||
$grid.insert(rows).then(({ row }) => {});
|
||||
} else {
|
||||
console.error("xGridRef不存在");
|
||||
console.error('xGridRef不存在');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async function handleSubmit() {
|
||||
isLoading.value = true
|
||||
isLoading.value = true;
|
||||
|
||||
try {
|
||||
let form = formRef.value.form;
|
||||
const form = formRef.value.form;
|
||||
// await formRef.value.submit()
|
||||
console.log(formRef.value)
|
||||
const userStore = useUserStore()
|
||||
console.log(formRef.value);
|
||||
const userStore = useUserStore();
|
||||
|
||||
let newForm = {}
|
||||
let newForm = {};
|
||||
|
||||
// 会议附件
|
||||
let fileList = formRef.value.form.fileList
|
||||
let files: any = []
|
||||
if (fileList && fileList.length) {
|
||||
files = await fileUploader.upload(fileList, { source: 'erp' })
|
||||
const fileList = formRef.value.form.fileList;
|
||||
let files: any = [];
|
||||
if (fileList && fileList.length > 0) {
|
||||
files = await fileUploader.upload(fileList, { source: 'erp' });
|
||||
}
|
||||
console.log(files)
|
||||
console.log(files);
|
||||
if (files) {
|
||||
newForm.fileUuid = (files.map((item) => item.fileUuid) || []).join(',')
|
||||
newForm.fileUuid = (files.map((item) => item.fileUuid) || []).join(',');
|
||||
}
|
||||
|
||||
newForm = Object.assign({}, formRef.value.form, newForm)
|
||||
newForm = Object.assign({}, formRef.value.form, newForm);
|
||||
|
||||
delete newForm.fileList
|
||||
delete newForm.fileList;
|
||||
|
||||
console.log(newForm)
|
||||
console.log(newForm);
|
||||
|
||||
await Apis.supervise.post_save({ data: newForm }).then((data) => {
|
||||
message.success("提交成功");
|
||||
message.success('提交成功');
|
||||
back();
|
||||
});
|
||||
} catch (error) {
|
||||
message.error("提交失败,请稍候再试");
|
||||
console.log(error)
|
||||
message.error('提交失败,请稍候再试');
|
||||
console.log(error);
|
||||
} finally {
|
||||
isLoading.value = false
|
||||
isLoading.value = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
const currData = ref({})
|
||||
const currData = ref({});
|
||||
|
||||
onMounted(async () => {
|
||||
isLoading.value = true
|
||||
console.log(id)
|
||||
isLoading.value = true;
|
||||
console.log(id);
|
||||
try {
|
||||
if (id) {
|
||||
let data = await Apis.supervise.get_page({ params: { guid: id } })
|
||||
data = data.rows[0]
|
||||
let data = await Apis.supervise.get_page({ params: { guid: id } });
|
||||
data = data.rows[0];
|
||||
|
||||
console.log(data)
|
||||
console.log(data);
|
||||
|
||||
currData.value = data;
|
||||
nextTick(() => {
|
||||
formRef.value.setFormData(data)
|
||||
})
|
||||
formRef.value.setFormData(data);
|
||||
});
|
||||
|
||||
if (data.fileUuid) {
|
||||
let files = await fileUploader.select(data.fileUuid)
|
||||
console.log(files)
|
||||
const files = await fileUploader.select(data.fileUuid);
|
||||
console.log(files);
|
||||
nextTick(() => {
|
||||
formRef.value.setFormData({
|
||||
fileList: files
|
||||
})
|
||||
})
|
||||
fileList: files,
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
|
||||
Modal.error({
|
||||
title: "提示",
|
||||
content: "当前立项信息不存在",
|
||||
title: '提示',
|
||||
content: '当前立项信息不存在',
|
||||
onOk() {
|
||||
back();
|
||||
},
|
||||
});
|
||||
} finally {
|
||||
isLoading.value = false
|
||||
isLoading.value = false;
|
||||
}
|
||||
|
||||
|
||||
})
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Page id="components-affix-demo-target" ref="containerRef" contentClass="h-full flex flex-col overflow-y-scroll">
|
||||
|
||||
<ChooseUserModal class="w-[950px]" multiple @confirm="handleChooseUserConfirm" />
|
||||
<Page
|
||||
id="components-affix-demo-target"
|
||||
ref="containerRef"
|
||||
content-class="h-full flex flex-col overflow-y-scroll"
|
||||
>
|
||||
<ChooseUserModal
|
||||
class="w-[950px]"
|
||||
multiple
|
||||
@confirm="handleChooseUserConfirm"
|
||||
/>
|
||||
<a-spin :spinning="isLoading">
|
||||
<a-space>
|
||||
<vben-button variant="primary" @click="handleSubmit()">提交</vben-button>
|
||||
<vben-button variant="destructive"
|
||||
@click="handleDelete()">
|
||||
<vben-button variant="primary" @click="handleSubmit()">
|
||||
提交
|
||||
</vben-button>
|
||||
<vben-button variant="destructive" @click="handleDelete()">
|
||||
删除
|
||||
</vben-button>
|
||||
<vben-button variant="secondary" @click="handleBack()">返回</vben-button>
|
||||
<vben-button variant="secondary" @click="handleBack()">
|
||||
返回
|
||||
</vben-button>
|
||||
</a-space>
|
||||
<div class="mx-auto w-[800px] h-[75vh] overflow-auto">
|
||||
<div class="mx-auto h-[75vh] w-[800px] overflow-auto">
|
||||
<a-space direction="vertical">
|
||||
<a-card title="基本信息" size="small" class="w-full">
|
||||
<a-card class="w-full" size="small" title="基本信息">
|
||||
<fs-form ref="formRef" class="w-full" v-bind="formBinding">
|
||||
<template #form_fileList="scope">
|
||||
<a-upload v-model:fileList="scope.form.fileList" accept=".pdf,.ppt,.pptx" :max-count="3" name="file"
|
||||
:before-upload="beforeUpload" @change="handleChange">
|
||||
<a-upload
|
||||
v-model:file-list="scope.form.fileList"
|
||||
:before-upload="beforeUpload"
|
||||
:max-count="3"
|
||||
accept=".pdf,.ppt,.pptx"
|
||||
name="file"
|
||||
@change="handleChange"
|
||||
>
|
||||
<a-button>
|
||||
<MdiUpload />
|
||||
点击上传
|
||||
|
@ -357,7 +370,6 @@ onMounted(async () => {
|
|||
</a-space>
|
||||
</div>
|
||||
</a-spin>
|
||||
|
||||
</Page>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
import type { VxeGridPropTypes } from 'vxe-table';
|
||||
import { useRender } from '#/hooks/useRender';
|
||||
import dayjs from 'dayjs';
|
||||
import { DICT_TYPE, getDictObj, getDictOptions } from '#/utils/dict';
|
||||
|
||||
import { dict } from '@fast-crud/fast-crud';
|
||||
import { unitComponentProps } from '#/common/unit';
|
||||
|
||||
import { DICT_TYPE, getDictOptions } from '#/utils/dict';
|
||||
|
||||
export const PrimaryKey = 'guid';
|
||||
|
||||
|
@ -25,8 +24,7 @@ export function getColumns(_params: any = {}): VxeGridPropTypes.Columns {
|
|||
|
||||
export function getFormSchema(_params: any = {}) {
|
||||
return {
|
||||
initialForm: {
|
||||
},
|
||||
initialForm: {},
|
||||
columns: {
|
||||
taskName: {
|
||||
title: '任务名称',
|
||||
|
@ -51,21 +49,21 @@ export function getFormSchema(_params: any = {}) {
|
|||
data: [
|
||||
{
|
||||
value: '1',
|
||||
label: '未开始'
|
||||
label: '未开始',
|
||||
},
|
||||
{
|
||||
value: '2',
|
||||
label: '进行中'
|
||||
label: '进行中',
|
||||
},
|
||||
{
|
||||
value: '3',
|
||||
label: '已完成'
|
||||
label: '已完成',
|
||||
},
|
||||
{
|
||||
value: '4',
|
||||
label: '已超时'
|
||||
}
|
||||
]
|
||||
label: '已超时',
|
||||
},
|
||||
],
|
||||
}),
|
||||
},
|
||||
autoSearchTrigger: 'enter',
|
||||
|
@ -80,7 +78,7 @@ export function getFormSchema(_params: any = {}) {
|
|||
class: 'min-w-[180px]',
|
||||
allowClear: true,
|
||||
dict: dict({
|
||||
data: getDictOptions(DICT_TYPE.supervise_task_type)
|
||||
data: getDictOptions(DICT_TYPE.supervise_task_type),
|
||||
}),
|
||||
},
|
||||
autoSearchTrigger: 'enter',
|
||||
|
@ -94,6 +92,5 @@ export function getFormSchema(_params: any = {}) {
|
|||
// show: true,
|
||||
// },
|
||||
},
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -1,34 +1,134 @@
|
|||
<script setup lang="ts">
|
||||
import { computed, onMounted, reactive, ref } from 'vue';
|
||||
|
||||
import { Page } from '@vben/common-ui';
|
||||
import {
|
||||
MdiAdd,
|
||||
MdiDelete,
|
||||
MdiExport,
|
||||
MdiRadioChecked,
|
||||
MdiRadioUnchecked,
|
||||
MdiUpdate,
|
||||
} from '@vben/icons';
|
||||
|
||||
import { message } from 'ant-design-vue';
|
||||
|
||||
import Apis from '#/api';
|
||||
import { useVxeTable } from '#/hooks/vxeTable';
|
||||
|
||||
import { getColumns, getFormSchema } from './crud.tsx';
|
||||
|
||||
const searchRef = ref();
|
||||
|
||||
const { xGridRef, triggerProxy, gridProps } = useVxeTable({ ref: 'xGridRef' });
|
||||
|
||||
/** Hooks - 表格 */
|
||||
const gridOptions = reactive(
|
||||
gridProps({
|
||||
columns: getColumns(),
|
||||
proxyConfig: {
|
||||
autoLoad: false,
|
||||
ajax: {
|
||||
query: async ({ page }) => {
|
||||
const data = await Apis.feedback.get_page({
|
||||
params: {
|
||||
pageNum: page.currentPage,
|
||||
pageSize: page.pageSize,
|
||||
...searchRef.value?.formData,
|
||||
},
|
||||
});
|
||||
return data;
|
||||
},
|
||||
},
|
||||
},
|
||||
pagerConfig: {
|
||||
enabled: true,
|
||||
},
|
||||
toolbarConfig: {
|
||||
enabled: true,
|
||||
},
|
||||
}),
|
||||
);
|
||||
|
||||
function handleExport() {
|
||||
const $grid = xGridRef.value;
|
||||
if ($grid) {
|
||||
$grid.exportData({
|
||||
type: 'xlsx',
|
||||
});
|
||||
message.success('导出成功');
|
||||
}
|
||||
}
|
||||
|
||||
/** 选中数据 */
|
||||
const selectRow: Recordable = computed(() => {
|
||||
return xGridRef.value?.getRadioRecord() || null;
|
||||
});
|
||||
|
||||
/** 单选框选中事件 */
|
||||
const setSelectRow = (row: Recordable) => {
|
||||
if (selectRow.value && selectRow.value.guid === row.guid) {
|
||||
xGridRef.value?.clearRadioRow();
|
||||
} else {
|
||||
xGridRef.value?.setRadioRow(row);
|
||||
}
|
||||
};
|
||||
|
||||
/** 表格单元格单击事件 */
|
||||
function handleCellClick({ row }) {
|
||||
setSelectRow(row);
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
triggerProxy('reload');
|
||||
});
|
||||
|
||||
let searchParams = reactive({});
|
||||
const searchForm = ref({
|
||||
...getFormSchema(),
|
||||
onSearch(context: any) {
|
||||
console.log(searchRef.value);
|
||||
triggerProxy('reload');
|
||||
},
|
||||
onReset(context: any) {
|
||||
searchParams = context.form;
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Page contentClass="h-full flex flex-col">
|
||||
<fs-search ref="searchRef" v-bind="searchForm"> </fs-search>
|
||||
<div class="flex-1 min-h-300px">
|
||||
<vxe-grid ref="xGridRef" v-bind="gridOptions" @cell-click="handleCellClick">
|
||||
<Page content-class="h-full flex flex-col">
|
||||
<fs-search ref="searchRef" v-bind="searchForm" />
|
||||
<div class="min-h-300px flex-1">
|
||||
<vxe-grid
|
||||
ref="xGridRef"
|
||||
v-bind="gridOptions"
|
||||
@cell-click="handleCellClick"
|
||||
>
|
||||
<template #toolbar_buttons>
|
||||
<a-space>
|
||||
<a-button type="primary" @click="handleAdd()">
|
||||
<MdiAdd class="text-lg mr-0.5" />
|
||||
<MdiAdd class="mr-0.5 text-lg" />
|
||||
新增
|
||||
</a-button>
|
||||
<a-button
|
||||
:disabled="!selectRow || !selectRow.guid"
|
||||
type="primary"
|
||||
|
||||
:disabled="!selectRow || !selectRow['guid']"
|
||||
@click="handleUpdate(selectRow)"
|
||||
>
|
||||
<MdiUpdate class="text-lg mr-0.5" />
|
||||
<MdiUpdate class="mr-0.5 text-lg" />
|
||||
修改
|
||||
</a-button>
|
||||
<a-button
|
||||
:disabled="!selectRow || !selectRow.guid"
|
||||
type="primary"
|
||||
|
||||
:disabled="!selectRow || !selectRow['guid']"
|
||||
@click="handleDelete(selectRow)"
|
||||
>
|
||||
<MdiDelete class="text-lg mr-0.5" />
|
||||
<MdiDelete class="mr-0.5 text-lg" />
|
||||
删除
|
||||
</a-button>
|
||||
<a-button type="primary" @click="handleExport()">
|
||||
<MdiExport class="text-lg mr-0.5" />
|
||||
<MdiExport class="mr-0.5 text-lg" />
|
||||
导出
|
||||
</a-button>
|
||||
</a-space>
|
||||
|
@ -46,111 +146,11 @@
|
|||
</template>
|
||||
|
||||
<template #statusSlot="{ row }">
|
||||
<a-tag>{{ row.status || "待提交" }}</a-tag>
|
||||
<a-tag>{{ row.status || '待提交' }}</a-tag>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
</div>
|
||||
</Page>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { defineComponent, ref, computed, reactive, onMounted } from 'vue';
|
||||
import { FsCrud } from '@fast-crud/fast-crud';
|
||||
import { type VxeGridProps } from 'vxe-table'
|
||||
import { Page, useVbenModal } from '@vben/common-ui';
|
||||
import { useVxeTable } from '#/hooks/vxeTable';
|
||||
import { MdiAdd, MdiUpdate, MdiDelete, MdiImport, MdiExport, MdiRadioUnchecked, MdiRadioChecked } from '@vben/icons';
|
||||
import { getFormSchema, getColumns } from './crud.tsx';
|
||||
import { dict } from "@fast-crud/fast-crud";
|
||||
import { getMonthStartAndEnd } from '#/utils/time'
|
||||
import Apis from '#/api'
|
||||
import dayjs from 'dayjs';
|
||||
import { message } from "ant-design-vue";
|
||||
import { Modal } from 'ant-design-vue';
|
||||
import { unitComponentProps } from '#/common/unit'
|
||||
import { DICT_TYPE, getDictOptions } from '#/utils/dict';
|
||||
|
||||
import { useRouter } from 'vue-router'
|
||||
|
||||
const router = useRouter();
|
||||
|
||||
let isOneDay = ref("");
|
||||
|
||||
const searchRef = ref()
|
||||
|
||||
const { xGridRef, triggerProxy, gridProps } = useVxeTable({ ref: 'xGridRef' });
|
||||
|
||||
|
||||
/** Hooks - 表格 */
|
||||
const gridOptions = reactive(gridProps({
|
||||
columns: getColumns(),
|
||||
proxyConfig: {
|
||||
autoLoad: false,
|
||||
ajax: {
|
||||
query: ({ page }) => {
|
||||
let form = searchRef.value?.formData
|
||||
if (form.startDate == form.endDate) {
|
||||
isOneDay.value = form.startDate;
|
||||
} else {
|
||||
isOneDay.value = "";
|
||||
}
|
||||
return Apis.supervise.get_huizong({ params: { pageNum: page.currentPage, pageSize: page.pageSize, ...form } })
|
||||
}
|
||||
},
|
||||
},
|
||||
pagerConfig: {
|
||||
enabled: true
|
||||
},
|
||||
toolbarConfig: {
|
||||
enabled: true
|
||||
},
|
||||
}));
|
||||
|
||||
function handleExport() {
|
||||
const $grid = xGridRef.value;
|
||||
if ($grid) {
|
||||
$grid.exportData({
|
||||
type: "xlsx",
|
||||
});
|
||||
message.success("导出成功");
|
||||
}
|
||||
}
|
||||
|
||||
/** 选中数据 */
|
||||
const selectRow: Recordable = computed(() => {
|
||||
return xGridRef.value?.getRadioRecord() || null;
|
||||
});
|
||||
|
||||
/** 单选框选中事件 */
|
||||
const setSelectRow = (row: Recordable) => {
|
||||
if (selectRow.value && selectRow.value['guid'] === row['guid']) {
|
||||
xGridRef.value?.clearRadioRow();
|
||||
} else {
|
||||
xGridRef.value?.setRadioRow(row);
|
||||
}
|
||||
};
|
||||
|
||||
/** 表格单元格单击事件 */
|
||||
function handleCellClick({ row }) {
|
||||
setSelectRow(row);
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
triggerProxy('reload')
|
||||
})
|
||||
|
||||
let searchParams = reactive({})
|
||||
const searchForm = ref({
|
||||
...getFormSchema(),
|
||||
onSearch(context: any) {
|
||||
console.log(searchRef.value)
|
||||
triggerProxy('reload')
|
||||
},
|
||||
onReset(context: any) {
|
||||
searchParams = context.form
|
||||
},
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<style></style>
|
||||
|
|
|
@ -1,24 +1,36 @@
|
|||
import type { VxeGridPropTypes } from 'vxe-table';
|
||||
import { useRender } from '#/hooks/useRender';
|
||||
import dayjs from 'dayjs';
|
||||
import { DICT_TYPE, getDictObj, getDictOptions } from '#/utils/dict';
|
||||
|
||||
import { dict } from '@fast-crud/fast-crud';
|
||||
import { unitComponentProps } from '#/common/unit';
|
||||
|
||||
import { useRender } from '#/hooks/useRender';
|
||||
import { DICT_TYPE, getDictOptions } from '#/utils/dict';
|
||||
|
||||
export const PrimaryKey = 'guid';
|
||||
|
||||
export function getColumns(params: any = {}): VxeGridPropTypes.Columns {
|
||||
return [
|
||||
{ type: 'radio', width: 40, slots: { radio: 'radio_cell' }, align: 'center', fixed: 'left' },
|
||||
{
|
||||
type: 'radio',
|
||||
width: 40,
|
||||
slots: { radio: 'radio_cell' },
|
||||
align: 'center',
|
||||
fixed: 'left',
|
||||
},
|
||||
// { type: 'expand', width: 60, slots: { content: 'expand_content' } },
|
||||
{
|
||||
field: 'taskName', title: '任务标题', width: 200, slots: {
|
||||
default: "task-name-slot"
|
||||
field: 'taskName',
|
||||
title: '任务标题',
|
||||
width: 200,
|
||||
slots: {
|
||||
default: 'task-name-slot',
|
||||
},
|
||||
},
|
||||
{
|
||||
field: 'status', title: '任务状态', width: 120, slots: {
|
||||
default: "statusSlot"
|
||||
field: 'status',
|
||||
title: '任务状态',
|
||||
width: 120,
|
||||
slots: {
|
||||
default: 'statusSlot',
|
||||
},
|
||||
},
|
||||
{
|
||||
|
@ -27,22 +39,31 @@ export function getColumns(params: any = {}): VxeGridPropTypes.Columns {
|
|||
width: 100,
|
||||
slots: {
|
||||
default: ({ row }) => {
|
||||
return useRender.renderDict(row.taskType, DICT_TYPE.supervise_task_type);
|
||||
}
|
||||
}
|
||||
return useRender.renderDict(
|
||||
row.taskType,
|
||||
DICT_TYPE.supervise_task_type,
|
||||
);
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
field: 'taskContent', title: '任务内容', width: 300, slots: {
|
||||
field: 'taskContent',
|
||||
title: '任务内容',
|
||||
width: 300,
|
||||
slots: {
|
||||
default: ({ row }) => {
|
||||
return useRender.renderMultiLineText(row.taskContent, {});
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
field: 'taskProgress', title: '任务进度', minWidth: 200, slots: {
|
||||
field: 'taskProgress',
|
||||
title: '任务进度',
|
||||
minWidth: 200,
|
||||
slots: {
|
||||
default: ({ row }) => {
|
||||
return useRender.renderMultiLineText(row.taskProgress, {});
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
|
@ -51,33 +72,42 @@ export function getColumns(params: any = {}): VxeGridPropTypes.Columns {
|
|||
width: 100,
|
||||
slots: {
|
||||
default: ({ row }) => {
|
||||
return useRender.renderDict(row.urgentDegree, DICT_TYPE.supervise_emergency_level);
|
||||
}
|
||||
}
|
||||
return useRender.renderDict(
|
||||
row.urgentDegree,
|
||||
DICT_TYPE.supervise_emergency_level,
|
||||
);
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
field: 'starttime', title: '开始日期', width: 120,
|
||||
field: 'starttime',
|
||||
title: '开始日期',
|
||||
width: 120,
|
||||
slots: {
|
||||
default: ({ row }) => {
|
||||
return useRender.renderDate(row.starttime, 'YYYY-MM-DD');
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
field: 'endtime', title: '截止日期', width: 120,
|
||||
field: 'endtime',
|
||||
title: '截止日期',
|
||||
width: 120,
|
||||
slots: {
|
||||
default: ({ row }) => {
|
||||
return useRender.renderDate(row.endtime, 'YYYY-MM-DD');
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
field: 'planFinishTime', title: '预计完成日期', width: 120,
|
||||
field: 'planFinishTime',
|
||||
title: '预计完成日期',
|
||||
width: 120,
|
||||
slots: {
|
||||
default: ({ row }) => {
|
||||
return useRender.renderDate(row.planFinishTime, 'YYYY-MM-DD');
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
{ field: 'remarks', title: '备注', minWidth: 200 },
|
||||
// { title: '操作', width: 120, fixed: 'right', slots: { default: 'operate' } }
|
||||
|
@ -86,8 +116,7 @@ export function getColumns(params: any = {}): VxeGridPropTypes.Columns {
|
|||
|
||||
export function getFormSchema(_params: any = {}) {
|
||||
return {
|
||||
initialForm: {
|
||||
},
|
||||
initialForm: {},
|
||||
columns: {
|
||||
taskName: {
|
||||
title: '任务名称',
|
||||
|
@ -112,21 +141,21 @@ export function getFormSchema(_params: any = {}) {
|
|||
data: [
|
||||
{
|
||||
value: '1',
|
||||
label: '未开始'
|
||||
label: '未开始',
|
||||
},
|
||||
{
|
||||
value: '2',
|
||||
label: '进行中'
|
||||
label: '进行中',
|
||||
},
|
||||
{
|
||||
value: '3',
|
||||
label: '已完成'
|
||||
label: '已完成',
|
||||
},
|
||||
{
|
||||
value: '4',
|
||||
label: '已超时'
|
||||
}
|
||||
]
|
||||
label: '已超时',
|
||||
},
|
||||
],
|
||||
}),
|
||||
},
|
||||
autoSearchTrigger: 'enter',
|
||||
|
@ -141,7 +170,7 @@ export function getFormSchema(_params: any = {}) {
|
|||
class: 'min-w-[180px]',
|
||||
allowClear: true,
|
||||
dict: dict({
|
||||
data: getDictOptions(DICT_TYPE.supervise_task_type)
|
||||
data: getDictOptions(DICT_TYPE.supervise_task_type),
|
||||
}),
|
||||
},
|
||||
autoSearchTrigger: 'enter',
|
||||
|
@ -155,6 +184,5 @@ export function getFormSchema(_params: any = {}) {
|
|||
// show: true,
|
||||
// },
|
||||
},
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -1,124 +1,81 @@
|
|||
<template>
|
||||
<Page contentClass="h-full flex flex-col">
|
||||
|
||||
<fs-search ref="searchRef" v-bind="searchForm"> </fs-search>
|
||||
<div class="flex-1 min-h-300px">
|
||||
<vxe-grid ref="xGridRef" v-bind="gridOptions" @cell-click="handleCellClick">
|
||||
<template #toolbar_buttons>
|
||||
<a-space>
|
||||
<vben-button variant="primary" @click="handleAdd()">
|
||||
<MdiAdd class="text-lg mr-0.5" />
|
||||
新增
|
||||
</vben-button>
|
||||
<vben-button variant="warning" :disabled="!selectRow || !selectRow['guid']"
|
||||
@click="handleUpdate(selectRow)">
|
||||
<MdiUpdate class="text-lg mr-0.5" />
|
||||
修改
|
||||
</vben-button>
|
||||
<vben-button variant="destructive" :disabled="!selectRow || !selectRow['guid']"
|
||||
@click="handleDelete(selectRow)">
|
||||
<MdiDelete class="text-lg mr-0.5" />
|
||||
删除
|
||||
</vben-button>
|
||||
<vben-button variant="primary" @click="handleExport()">
|
||||
<MdiExport class="text-lg mr-0.5" />
|
||||
导出
|
||||
</vben-button>
|
||||
</a-space>
|
||||
</template>
|
||||
|
||||
<template #radio_cell="{ row, checked }">
|
||||
<span class="text-base" @click.stop="setSelectRow(row)">
|
||||
<MdiRadioChecked v-if="checked" />
|
||||
<MdiRadioUnchecked v-else />
|
||||
</span>
|
||||
</template>
|
||||
|
||||
|
||||
<template #task-name-slot="{ row }">
|
||||
<span class=""> {{ row.taskName }}</span>
|
||||
</template>
|
||||
|
||||
<template #statusSlot="{ row }">
|
||||
<a-tag>{{ row.status || "待提交" }}</a-tag>
|
||||
</template>
|
||||
|
||||
</vxe-grid>
|
||||
</div>
|
||||
</Page>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { defineComponent, ref, computed, reactive, onMounted } from 'vue';
|
||||
import { FsCrud } from '@fast-crud/fast-crud';
|
||||
import { type VxeGridProps } from 'vxe-table'
|
||||
import { Page, useVbenModal } from '@vben/common-ui';
|
||||
import { useVxeTable } from '#/hooks/vxeTable';
|
||||
import { MdiAdd, MdiUpdate, MdiDelete, MdiImport, MdiExport, MdiRadioUnchecked, MdiRadioChecked } from '@vben/icons';
|
||||
import { getFormSchema, getColumns } from './crud.tsx';
|
||||
import { dict } from "@fast-crud/fast-crud";
|
||||
import { getMonthStartAndEnd } from '#/utils/time'
|
||||
import Apis from '#/api'
|
||||
import dayjs from 'dayjs';
|
||||
import { message } from "ant-design-vue";
|
||||
import { Modal } from 'ant-design-vue';
|
||||
import { unitComponentProps } from '#/common/unit'
|
||||
import { DICT_TYPE, getDictOptions } from '#/utils/dict';
|
||||
import { computed, onMounted, reactive, ref } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
|
||||
import { useRouter } from 'vue-router'
|
||||
import { Page } from '@vben/common-ui';
|
||||
import {
|
||||
MdiAdd,
|
||||
MdiDelete,
|
||||
MdiExport,
|
||||
MdiRadioChecked,
|
||||
MdiRadioUnchecked,
|
||||
MdiUpdate,
|
||||
} from '@vben/icons';
|
||||
|
||||
import { message, Modal } from 'ant-design-vue';
|
||||
|
||||
import Apis from '#/api';
|
||||
import { useVxeTable } from '#/hooks/vxeTable';
|
||||
|
||||
import { getColumns, getFormSchema } from './crud.tsx';
|
||||
|
||||
const router = useRouter();
|
||||
|
||||
let isOneDay = ref("");
|
||||
const isOneDay = ref('');
|
||||
|
||||
const searchRef = ref()
|
||||
const searchRef = ref();
|
||||
|
||||
const { xGridRef, triggerProxy, gridProps } = useVxeTable({ ref: 'xGridRef' });
|
||||
|
||||
|
||||
/** Hooks - 表格 */
|
||||
const gridOptions = reactive(gridProps({
|
||||
const gridOptions = reactive(
|
||||
gridProps({
|
||||
columns: getColumns(),
|
||||
proxyConfig: {
|
||||
autoLoad: false,
|
||||
ajax: {
|
||||
query: ({ page }) => {
|
||||
let form = searchRef.value?.formData
|
||||
if (form.startDate == form.endDate) {
|
||||
isOneDay.value = form.startDate;
|
||||
} else {
|
||||
isOneDay.value = "";
|
||||
}
|
||||
return Apis.supervise.get_page({ params: { pageNum: page.currentPage, pageSize: page.pageSize, ...form } })
|
||||
}
|
||||
query: async ({ page }) => {
|
||||
const form = searchRef.value?.formData;
|
||||
isOneDay.value =
|
||||
form.startDate === form.endDate ? form.startDate : '';
|
||||
const data = await Apis.supervise.get_page({
|
||||
params: {
|
||||
pageNum: page.currentPage,
|
||||
pageSize: page.pageSize,
|
||||
...form,
|
||||
},
|
||||
});
|
||||
return data;
|
||||
},
|
||||
},
|
||||
},
|
||||
pagerConfig: {
|
||||
enabled: true
|
||||
enabled: true,
|
||||
},
|
||||
toolbarConfig: {
|
||||
enabled: true
|
||||
enabled: true,
|
||||
},
|
||||
}));
|
||||
}),
|
||||
);
|
||||
|
||||
function handleExport() {
|
||||
const $grid = xGridRef.value;
|
||||
if ($grid) {
|
||||
$grid.exportData({
|
||||
type: "xlsx",
|
||||
type: 'xlsx',
|
||||
});
|
||||
message.success("导出成功");
|
||||
message.success('导出成功');
|
||||
}
|
||||
}
|
||||
|
||||
/** 选中数据 */
|
||||
const selectRow: Recordable = computed(() => {
|
||||
const selectRow: any = computed(() => {
|
||||
return xGridRef.value?.getRadioRecord() || null;
|
||||
});
|
||||
|
||||
/** 单选框选中事件 */
|
||||
const setSelectRow = (row: Recordable) => {
|
||||
if (selectRow.value && selectRow.value['guid'] === row['guid']) {
|
||||
const setSelectRow = (row: any) => {
|
||||
if (selectRow.value && selectRow.value.guid === row.guid) {
|
||||
xGridRef.value?.clearRadioRow();
|
||||
} else {
|
||||
xGridRef.value?.setRadioRow(row);
|
||||
|
@ -131,45 +88,93 @@ function handleCellClick({ row }) {
|
|||
}
|
||||
|
||||
onMounted(() => {
|
||||
triggerProxy('reload')
|
||||
})
|
||||
triggerProxy('reload');
|
||||
});
|
||||
|
||||
let searchParams = reactive({})
|
||||
const searchForm = ref({
|
||||
...getFormSchema(),
|
||||
onSearch(context: any) {
|
||||
console.log(searchRef.value)
|
||||
triggerProxy('reload')
|
||||
},
|
||||
onReset(context: any) {
|
||||
searchParams = context.form
|
||||
onSearch(_context: any) {
|
||||
triggerProxy('reload');
|
||||
},
|
||||
});
|
||||
|
||||
function handleAdd() {
|
||||
router.push('/supervise/edit')
|
||||
router.push('/supervise/edit');
|
||||
}
|
||||
|
||||
function handleUpdate(row) {
|
||||
router.push('/supervise/edit/' + row['guid'])
|
||||
router.push(`/supervise/edit/${row.guid}`);
|
||||
}
|
||||
|
||||
function handleDelete(row) {
|
||||
Modal.confirm({
|
||||
title: '提示',
|
||||
content: "是否确认删除该条记录?",
|
||||
content: '是否确认删除该条记录?',
|
||||
okType: 'danger',
|
||||
onOk: async () => {
|
||||
await Apis.supervise.post_deletes({ params: { ids: row['guid'] } })
|
||||
message.success("删除成功");
|
||||
triggerProxy("reload");
|
||||
},
|
||||
onCancel() {
|
||||
console.log('Cancel');
|
||||
await Apis.supervise.post_deletes({ params: { ids: row.guid } });
|
||||
message.success('删除成功');
|
||||
triggerProxy('reload');
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Page content-class="h-full flex flex-col">
|
||||
<fs-search ref="searchRef" v-bind="searchForm" />
|
||||
<div class="min-h-300px flex-1">
|
||||
<vxe-grid
|
||||
ref="xGridRef"
|
||||
v-bind="gridOptions"
|
||||
@cell-click="handleCellClick"
|
||||
>
|
||||
<template #toolbar_buttons>
|
||||
<a-space>
|
||||
<vben-button variant="primary" @click="handleAdd()">
|
||||
<MdiAdd class="mr-0.5 text-lg" />
|
||||
新增
|
||||
</vben-button>
|
||||
<vben-button
|
||||
:disabled="!selectRow || !selectRow.guid"
|
||||
variant="warning"
|
||||
@click="handleUpdate(selectRow)"
|
||||
>
|
||||
<MdiUpdate class="mr-0.5 text-lg" />
|
||||
修改
|
||||
</vben-button>
|
||||
<vben-button
|
||||
:disabled="!selectRow || !selectRow.guid"
|
||||
variant="destructive"
|
||||
@click="handleDelete(selectRow)"
|
||||
>
|
||||
<MdiDelete class="mr-0.5 text-lg" />
|
||||
删除
|
||||
</vben-button>
|
||||
<vben-button variant="primary" @click="handleExport()">
|
||||
<MdiExport class="mr-0.5 text-lg" />
|
||||
导出
|
||||
</vben-button>
|
||||
</a-space>
|
||||
</template>
|
||||
|
||||
<template #radio_cell="{ row, checked }">
|
||||
<span class="text-base" @click.stop="setSelectRow(row)">
|
||||
<MdiRadioChecked v-if="checked" />
|
||||
<MdiRadioUnchecked v-else />
|
||||
</span>
|
||||
</template>
|
||||
|
||||
<template #task-name-slot="{ row }">
|
||||
<span class=""> {{ row.taskName }}</span>
|
||||
</template>
|
||||
|
||||
<template #statusSlot="{ row }">
|
||||
<a-tag>{{ row.status || '待提交' }}</a-tag>
|
||||
</template>
|
||||
</vxe-grid>
|
||||
</div>
|
||||
</Page>
|
||||
</template>
|
||||
|
||||
<style></style>
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
import { http } from "./request/index"
|
||||
import type { QueryOptions, BodyOptions } from "./global.d"
|
||||
|
||||
export default {
|
||||
<%
|
||||
function renderObject(obj, indentLevel = 1) {
|
||||
let result = '';
|
||||
const indent = ' '.repeat(indentLevel * 4); // 根据层级计算缩进
|
||||
for (let key in obj) {
|
||||
// 将 key 转换为小驼峰格式
|
||||
const camelKey = key;
|
||||
let typeInterface = "BodyOptions"
|
||||
if(obj[key].method&&["get","delete"].includes(obj[key].method.toLowerCase())){
|
||||
typeInterface = "QueryOptions"
|
||||
}
|
||||
if (obj[key].method && obj[key].path) {
|
||||
result += `${indent}/** ${obj[key].tags} ${obj[key].summary} */\n`;
|
||||
result += `${indent}${camelKey}:(data?:${typeInterface})=> http.${obj[key].method.toLowerCase()}("${obj[key].path}",data),\n`;
|
||||
} else {
|
||||
result += `${indent}${camelKey}: {\n`;
|
||||
result += renderObject(obj[key], indentLevel + 1); // 递归调用时增加缩进级别
|
||||
result += `${indent}},\n`;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
%>
|
||||
<%- renderObject(functions) %>
|
||||
}
|
|
@ -0,0 +1,783 @@
|
|||
import type { BodyOptions, QueryOptions } from './global.d';
|
||||
|
||||
import { http } from './request/index';
|
||||
|
||||
export default {
|
||||
meeting: {
|
||||
/** 协同办公/会议管理 分页查询 */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/meeting/page', data),
|
||||
/** 协同办公/会议管理 删除会议 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/meeting/deletes', data),
|
||||
/** 协同办公/会议管理 会议保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/meeting/save', data),
|
||||
/** 协同办公/会议管理 查看会议台账 */
|
||||
get_list: (data?: QueryOptions) => http.get('/app/meeting/list', data),
|
||||
list: {
|
||||
/** 协同办公/会议管理 会议台账导出 */
|
||||
get_export: (data?: QueryOptions) =>
|
||||
http.get('/app/meeting/list/export', data),
|
||||
},
|
||||
/** 协同办公/会议管理 门户获取会议数据 */
|
||||
get_getFundingSource: (data?: QueryOptions) =>
|
||||
http.get('/app/meeting/getFundingSource', data),
|
||||
},
|
||||
tysq: {
|
||||
zzjg: {
|
||||
yhjbda: {
|
||||
YhjbdaController: {
|
||||
/** 统一授权 未命名接口 */
|
||||
get_yhjbdaGrid: (data?: QueryOptions) =>
|
||||
http.get('/app/tysq/zzjg/yhjbda/YhjbdaController/yhjbdaGrid', data),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
dictType: {
|
||||
/** 协同办公/字典表 字典类型查询 */
|
||||
get_list: (data?: QueryOptions) => http.get('/app/dictType/list', data),
|
||||
/** 协同办公/字典表 字典类型保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/dictType/save', data),
|
||||
/** 协同办公/字典表 字典类型删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/dictType/deletes', data),
|
||||
},
|
||||
uaa: {
|
||||
/** 用户中心 用户登陆 */
|
||||
post_validateAccount: (data?: BodyOptions) =>
|
||||
http.post('/app/uaa/validateAccount', data),
|
||||
},
|
||||
api: {
|
||||
core: {
|
||||
orgemplbc: {
|
||||
employee: {
|
||||
/** 用户中心 获取用户信息(分页) */
|
||||
post_paging: (data?: BodyOptions) =>
|
||||
http.post('/app/api/core/orgemplbc/employee/paging', data),
|
||||
},
|
||||
organization: {
|
||||
RL: {
|
||||
/** 用户中心 根据组织机构id获取员工信息 */
|
||||
get_employee: (data?: QueryOptions) =>
|
||||
http.get(
|
||||
'/app/api/core/orgemplbc/organization/RL/employee',
|
||||
data,
|
||||
),
|
||||
},
|
||||
/** 用户中心 获取组织结构信息 */
|
||||
post_paging: (data?: BodyOptions) =>
|
||||
http.post('/app/api/core/orgemplbc/organization/paging', data),
|
||||
},
|
||||
/** 用户中心 根据组织机构id和用户信息查询 */
|
||||
post_employee: (data?: BodyOptions) =>
|
||||
http.post('/app/api/core/orgemplbc/employee', data),
|
||||
},
|
||||
},
|
||||
},
|
||||
sys: {
|
||||
user: {
|
||||
/** 用户中心 根据token获取用户信息 */
|
||||
post_checkToken: (data?: BodyOptions) =>
|
||||
http.post('/app/sys/user/checkToken', data),
|
||||
functiontree: {
|
||||
/** 用户中心 获取菜单接口 */
|
||||
get_XTBGXT: (data?: QueryOptions) =>
|
||||
http.get('/app/sys/user/functiontree/XTBGXT', data),
|
||||
/** 统一授权 未命名接口 */
|
||||
get_PLRL: (data?: QueryOptions) =>
|
||||
http.get('/app/sys/user/functiontree/PLRL', data),
|
||||
},
|
||||
},
|
||||
},
|
||||
zbgl: {
|
||||
/** 协同办公/值班管理 值班查询 */
|
||||
get_queryZbInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/zbgl/queryZbInfo', data),
|
||||
/** 协同办公/值班管理 保存值班信息 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/zbgl/save', data),
|
||||
/** 协同办公/值班管理 删除值班信息 */
|
||||
get_deletes: (data?: QueryOptions) => http.get('/app/zbgl/deletes', data),
|
||||
/** 协同办公/值班管理 导入值班人员信息 */
|
||||
post_importZbry: (data?: BodyOptions) =>
|
||||
http.post('/app/zbgl/importZbry', data),
|
||||
/** 协同办公/值班管理 门户值班信息查询 */
|
||||
get_getDutyInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/zbgl/getDutyInfo', data),
|
||||
/** 协同办公/值班管理 导出 */
|
||||
post_export: (data?: BodyOptions) => http.post('/app/zbgl/export', data),
|
||||
},
|
||||
dictData: {
|
||||
/** 协同办公/字典表 字典数据保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/dictData/save', data),
|
||||
/** 合同系统/项目管理 保存 */
|
||||
get_save: (data?: QueryOptions) => http.get('/app/dictData/save', data),
|
||||
/** 合同系统/项目名称管理 查询 */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/dictData/page', data),
|
||||
/** 协同办公/字典表 字典数据删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/dictData/deletes', data),
|
||||
/** 合同系统/项目管理 删除 */
|
||||
get_deletes: (data?: QueryOptions) =>
|
||||
http.get('/app/dictData/deletes', data),
|
||||
},
|
||||
user: {
|
||||
/** 统一授权 获取用户列表 */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/user/page', data),
|
||||
},
|
||||
dish: {
|
||||
/** 协同办公/订餐管理/菜谱管理 菜谱查询 */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/dish/page', data),
|
||||
/** 协同办公/订餐管理/菜谱管理 菜谱保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/dish/save', data),
|
||||
/** 协同办公/订餐管理/食谱管理 菜谱删除 */
|
||||
post_deletes: (data?: BodyOptions) => http.post('/app/dish/deletes', data),
|
||||
},
|
||||
recipe: {
|
||||
/** 协同办公/订餐管理/食谱管理 食谱查询 */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/recipe/page', data),
|
||||
/** 协同办公/订餐管理/食谱管理 食谱保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/recipe/save', data),
|
||||
/** 协同办公/订餐管理/食谱管理 食谱导出 */
|
||||
get_export: (data?: QueryOptions) => http.get('/app/recipe/export', data),
|
||||
/** 协同办公/订餐管理/食谱管理 批量保存 */
|
||||
post_saveBatch: (data?: BodyOptions) =>
|
||||
http.post('/app/recipe/saveBatch', data),
|
||||
/** 协同办公/订餐管理/食谱管理 食谱编辑 */
|
||||
post_edit: (data?: BodyOptions) => http.post('/app/recipe/edit', data),
|
||||
},
|
||||
ccsq: {
|
||||
/** 协同办公/出差申请 出差申请查询 */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/ccsq/page', data),
|
||||
/** 协同办公/出差申请 申请单保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/ccsq/save', data),
|
||||
/** 协同办公/出差申请 申请单删除 */
|
||||
post_deletes: (data?: BodyOptions) => http.post('/app/ccsq/deletes', data),
|
||||
/** 协同办公/出差申请 退回 */
|
||||
post_rollback: (data?: BodyOptions) =>
|
||||
http.post('/app/ccsq/rollback', data),
|
||||
/** 协同办公/出差申请 启动流程 */
|
||||
post_startWorkFlow: (data?: BodyOptions) =>
|
||||
http.post('/app/ccsq/startWorkFlow', data),
|
||||
/** 协同办公/出差申请 审核 */
|
||||
post_submit: (data?: BodyOptions) => http.post('/app/ccsq/submit', data),
|
||||
/** 协同办公/出差申请 待办 */
|
||||
get_toDoPage: (data?: QueryOptions) => http.get('/app/ccsq/toDoPage', data),
|
||||
/** 协同办公/出差申请 已办 */
|
||||
get_donePage: (data?: QueryOptions) => http.get('/app/ccsq/donePage', data),
|
||||
/** 协同办公/出差申请 查询流程节点 */
|
||||
get_getFlowNodeUserConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/ccsq/getFlowNodeUserConfig', data),
|
||||
/** 协同办公/出差申请 下一审核节点 */
|
||||
post_getNextNodeUserConfig: (data?: BodyOptions) =>
|
||||
http.post('/app/ccsq/getNextNodeUserConfig', data),
|
||||
},
|
||||
orderfood: {
|
||||
/** 协同办公/订餐管理/订餐 订餐加载接口 */
|
||||
get_getOne: (data?: QueryOptions) =>
|
||||
http.get('/app/orderfood/getOne', data),
|
||||
/** 协同办公/订餐管理/订餐 订餐保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/orderfood/save', data),
|
||||
/** 协同办公/订餐管理/订餐 取消订餐 */
|
||||
post_cancel: (data?: BodyOptions) =>
|
||||
http.post('/app/orderfood/cancel', data),
|
||||
/** 协同办公/订餐管理/订餐 协助取消他人订餐 */
|
||||
post_assistCancel: (data?: BodyOptions) =>
|
||||
http.post('/app/orderfood/assistCancel', data),
|
||||
},
|
||||
orderfoods: {
|
||||
/** 协同办公/订餐管理/汇总 单位订餐汇总 */
|
||||
get_departmentSummary: (data?: QueryOptions) =>
|
||||
http.get('/app/orderfoods/departmentSummary', data),
|
||||
/** 协同办公/订餐管理/汇总 订餐汇总 */
|
||||
get_infoList: (data?: QueryOptions) =>
|
||||
http.get('/app/orderfoods/infoList', data),
|
||||
/** 协同办公/订餐管理/汇总 个人结算汇总 */
|
||||
get_personalSummary: (data?: QueryOptions) =>
|
||||
http.get('/app/orderfoods/personalSummary', data),
|
||||
infoList: {
|
||||
/** 协同办公/订餐管理/汇总 订餐汇总导出 */
|
||||
get_export: (data?: QueryOptions) =>
|
||||
http.get('/app/orderfoods/infoList/export', data),
|
||||
},
|
||||
personalSummary: {
|
||||
/** 协同办公/订餐管理/汇总 个人结算汇总导出 */
|
||||
get_export: (data?: QueryOptions) =>
|
||||
http.get('/app/orderfoods/personalSummary/export', data),
|
||||
},
|
||||
departmentSummary: {
|
||||
/** 协同办公/订餐管理/汇总 单位订餐汇总导出 */
|
||||
get_export: (data?: QueryOptions) =>
|
||||
http.get('/app/orderfoods/departmentSummary/export', data),
|
||||
},
|
||||
/** 协同办公/订餐管理/汇总 结算单 */
|
||||
get_finalStatement: (data?: QueryOptions) =>
|
||||
http.get('/app/orderfoods/finalStatement', data),
|
||||
finalStatement: {
|
||||
/** 协同办公/订餐管理/汇总 结算表导出 */
|
||||
get_export: (data?: QueryOptions) =>
|
||||
http.get('/app/orderfoods/finalStatement/export', data),
|
||||
},
|
||||
/** 协同办公/订餐管理/汇总 结算操作 */
|
||||
post_balance: (data?: BodyOptions) =>
|
||||
http.post('/app/orderfoods/balance', data),
|
||||
},
|
||||
officeSuppliesApply: {
|
||||
/** 协同办公/办公用品/办公用品申请 申请页面查询 */
|
||||
get_page: (data?: QueryOptions) =>
|
||||
http.get('/app/officeSuppliesApply/page', data),
|
||||
/** 协同办公/办公用品/办公用品申请 申请保存 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/officeSuppliesApply/save', data),
|
||||
/** 协同办公/办公用品/办公用品申请 批量审核 */
|
||||
post_audit: (data?: BodyOptions) =>
|
||||
http.post('/app/officeSuppliesApply/audit', data),
|
||||
/** 协同办公/办公用品/办公用品申请 批量申请 */
|
||||
post_saveBatch: (data?: BodyOptions) =>
|
||||
http.post('/app/officeSuppliesApply/saveBatch', data),
|
||||
/** 协同办公/办公用品/办公用品申请 撤销申请 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/officeSuppliesApply/deletes', data),
|
||||
},
|
||||
warehousing: {
|
||||
/** 协同办公/办公用品/入库/出库 入库查询 */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/warehousing/page', data),
|
||||
},
|
||||
inOrOut: {
|
||||
/** 协同办公/办公用品/入库/出库 入库/保存 */
|
||||
post_saveBatch: (data?: BodyOptions) =>
|
||||
http.post('/app/inOrOut/saveBatch', data),
|
||||
},
|
||||
supervise: {
|
||||
/** 协同办公/督查督办/立项发起 立项分页查询 */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/supervise/page', data),
|
||||
/** 协同办公/督查督办/立项发起 立项保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/supervise/save', data),
|
||||
/** 协同办公/督查督办/立项发起 立项删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/supervise/deletes', data),
|
||||
/** 协同办公/督查督办/立项发起 立项提交 */
|
||||
post_audit: (data?: BodyOptions) => http.post('/app/supervise/audit', data),
|
||||
/** 协同办公/督查督办/执行反馈 执行反馈提交 */
|
||||
post_auditFankui: (data?: BodyOptions) =>
|
||||
http.post('/app/supervise/auditFankui', data),
|
||||
/** 协同办公/督查督办/报表汇总 统计 */
|
||||
get_huizong: (data?: QueryOptions) =>
|
||||
http.get('/app/supervise/huizong', data),
|
||||
/** 协同办公/督查督办/立项发起 更新状态 */
|
||||
post_updateStatus: (data?: BodyOptions) =>
|
||||
http.post('/app/supervise/updateStatus', data),
|
||||
},
|
||||
feedback: {
|
||||
/** 协同办公/督查督办/执行反馈 执行反馈待办查询 */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/feedback/page', data),
|
||||
/** 协同办公/督查督办/执行反馈 执行反馈保存,实际修改操作,保存反馈时间,反馈内容,进度 */
|
||||
post_saveUpdate: (data?: BodyOptions) =>
|
||||
http.post('/app/feedback/saveUpdate', data),
|
||||
/** 协同办公/督查督办/执行反馈 查询负责部门列表,返回所有的反馈信息 */
|
||||
get_getDepartment: (data?: QueryOptions) =>
|
||||
http.get('/app/feedback/getDepartment', data),
|
||||
/** 协同办公/督查督办/执行反馈 分发立项任务 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/feedback/save', data),
|
||||
/** 协同办公/督查督办/执行反馈 执行反馈已办查询 */
|
||||
get_pageDone: (data?: QueryOptions) =>
|
||||
http.get('/app/feedback/pageDone', data),
|
||||
},
|
||||
file: {
|
||||
/** 协同办公/文件上传/下载 多文件上传 */
|
||||
post_uploads: (data?: BodyOptions) => http.post('/app/file/uploads', data),
|
||||
},
|
||||
addressor: {
|
||||
/** 协同办公/会议管理/发言人 发言人查询 */
|
||||
get_list: (data?: QueryOptions) => http.get('/app/addressor/list', data),
|
||||
/** 协同办公/会议管理/发言人 发言人批量保存 */
|
||||
post_saveBatch: (data?: BodyOptions) =>
|
||||
http.post('/app/addressor/saveBatch', data),
|
||||
/** 协同办公/会议管理/发言人 发言人保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/addressor/save', data),
|
||||
/** 协同办公/会议管理/发言人 删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/addressor/deletes', data),
|
||||
},
|
||||
officeSuppliesList: {
|
||||
/** 协同办公/办公用品/办公用品清单 分页查询 */
|
||||
get_page: (data?: QueryOptions) =>
|
||||
http.get('/app/officeSuppliesList/page', data),
|
||||
/** 协同办公/办公用品/办公用品清单 批量保存 */
|
||||
post_saveBatch: (data?: BodyOptions) =>
|
||||
http.post('/app/officeSuppliesList/saveBatch', data),
|
||||
/** 协同办公/办公用品/办公用品清单 删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/officeSuppliesList/deletes', data),
|
||||
},
|
||||
officeSuppliesApplySum: {
|
||||
/** 协同办公/办公用品 采购汇总 */
|
||||
get_list: (data?: QueryOptions) =>
|
||||
http.get('/app/officeSuppliesApplySum/list', data),
|
||||
/** 协同办公/办公用品 结算清单 */
|
||||
get_finalStatement: (data?: QueryOptions) =>
|
||||
http.get('/app/officeSuppliesApplySum/finalStatement', data),
|
||||
/** 协同办公/办公用品 单位结算清单 */
|
||||
get_unitFinalStatement: (data?: QueryOptions) =>
|
||||
http.get('/app/officeSuppliesApplySum/unitFinalStatement', data),
|
||||
finalStatement: {
|
||||
/** 协同办公/办公用品 结算清单导出 */
|
||||
get_export: (data?: QueryOptions) =>
|
||||
http.get('/app/officeSuppliesApplySum/finalStatement/export', data),
|
||||
},
|
||||
/** 协同办公/办公用品 结算清单结算操作 */
|
||||
post_balance: (data?: BodyOptions) =>
|
||||
http.post('/app/officeSuppliesApplySum/balance', data),
|
||||
},
|
||||
autoOrderfoodPeoples: {
|
||||
/** 协同办公/订餐管理/自动订餐人员管理 分页查询 */
|
||||
get_page: (data?: QueryOptions) =>
|
||||
http.get('/app/autoOrderfoodPeoples/page', data),
|
||||
/** 协同办公/订餐管理/自动订餐人员管理 批量保存 */
|
||||
post_saveBatch: (data?: BodyOptions) =>
|
||||
http.post('/app/autoOrderfoodPeoples/saveBatch', data),
|
||||
/** 协同办公/订餐管理/自动订餐人员管理 删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/autoOrderfoodPeoples/deletes', data),
|
||||
},
|
||||
usercenter: {
|
||||
/** 协同办公 获取菜单 */
|
||||
get_menus: (data?: QueryOptions) => http.get('/app/usercenter/menus', data),
|
||||
},
|
||||
workflow: {
|
||||
/** 协同办公/工作流 待办 */
|
||||
post_queryMyTodoTask: (data?: BodyOptions) =>
|
||||
http.post('/app/workflow/queryMyTodoTask', data),
|
||||
/** 协同办公/工作流 已办 */
|
||||
post_getHistoricTaskByUserID: (data?: BodyOptions) =>
|
||||
http.post('/app/workflow/getHistoricTaskByUserID', data),
|
||||
},
|
||||
personTask: {
|
||||
/** 合同系统/签订 待办查询 */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/personTask/page', data),
|
||||
/** 合同系统/签订 已办查询 */
|
||||
get_pagePersonTaskOver: (data?: QueryOptions) =>
|
||||
http.get('/app/personTask/pagePersonTaskOver', data),
|
||||
/** 合同系统/履行/履行查询 分页合同履行审批查询 */
|
||||
get_pagePerformanceAudit: (data?: QueryOptions) =>
|
||||
http.get('/app/personTask/pagePerformanceAudit', data),
|
||||
/** 合同系统/履行/履行提示/申请归档 归档保存 */
|
||||
post_applicationFiling: (data?: BodyOptions) =>
|
||||
http.post('/app/personTask/applicationFiling', data),
|
||||
},
|
||||
sbCtrBasePt: {
|
||||
/** 合同系统/申报 合同申报数据查询 */
|
||||
get_QuerySbCtrBase: (data?: QueryOptions) =>
|
||||
http.get('/app/sbCtrBasePt/QuerySbCtrBase', data),
|
||||
/** 合同系统/申报 合同申报基本信息加载 */
|
||||
post_page: (data?: BodyOptions) => http.post('/app/sbCtrBasePt/page', data),
|
||||
/** 合同系统/申报 合同申报基本信息保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/sbCtrBasePt/save', data),
|
||||
/** 合同系统/申报 合同申报基本信息删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/sbCtrBasePt/deletes', data),
|
||||
/** 合同系统/申报 获取资金渠道 */
|
||||
get_getFundingSource: (data?: QueryOptions) =>
|
||||
http.get('/app/sbCtrBasePt/getFundingSource', data),
|
||||
/** 合同系统/申报 提交 */
|
||||
post_submit: (data?: BodyOptions) =>
|
||||
http.post('/app/sbCtrBasePt/submit', data),
|
||||
/** 合同系统/申报 退回 */
|
||||
post_rollback: (data?: BodyOptions) =>
|
||||
http.post('/app/sbCtrBasePt/rollback', data),
|
||||
},
|
||||
contractBaseInfo: {
|
||||
/** 合同系统/立项 合同立项保存 */
|
||||
post_apply: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBaseInfo/apply', data),
|
||||
/** 合同系统/立项 合同立项查询 */
|
||||
get_page: (data?: QueryOptions) =>
|
||||
http.get('/app/contractBaseInfo/page', data),
|
||||
/** 合同系统/立项 删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBaseInfo/deletes', data),
|
||||
/** 合同系统/立项 单条查询 */
|
||||
get_getOne: (data?: QueryOptions) =>
|
||||
http.get('/app/contractBaseInfo/getOne', data),
|
||||
/** 合同系统/立项 提交 */
|
||||
post_submit: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBaseInfo/submit', data),
|
||||
/** 合同系统/立项废除 退回 */
|
||||
post_rollback: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBaseInfo/rollback', data),
|
||||
/** 合同系统/立项废除 合同立项废除 */
|
||||
post_abolish: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBaseInfo/abolish', data),
|
||||
/** 合同系统/立项废除 提交 */
|
||||
post_abolishSubmit: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBaseInfo/abolishSubmit', data),
|
||||
/** 合同系统/立项 流程启动(非待办提交) */
|
||||
post_applyFlowStart: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBaseInfo/applyFlowStart', data),
|
||||
/** 合同系统/立项废除 流程启动(非待办提交) */
|
||||
post_abolishFlowStart: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBaseInfo/abolishFlowStart', data),
|
||||
},
|
||||
proProviderInfo: {
|
||||
/** 合同系统/相对人管理 合同相对人查询 */
|
||||
get_Query: (data?: QueryOptions) =>
|
||||
http.get('/app/proProviderInfo/Query', data),
|
||||
/** 合同系统/相对人管理 获取币种 */
|
||||
get_getBz: (data?: QueryOptions) =>
|
||||
http.get('/app/proProviderInfo/getBz', data),
|
||||
/** 合同系统/相对人管理 保存 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/proProviderInfo/save', data),
|
||||
/** 合同系统/相对人管理 删除 */
|
||||
get_deletes: (data?: QueryOptions) =>
|
||||
http.get('/app/proProviderInfo/deletes', data),
|
||||
/** 合同系统/相对人管理 加载 */
|
||||
post_page: (data?: BodyOptions) =>
|
||||
http.post('/app/proProviderInfo/page', data),
|
||||
},
|
||||
contractModelInfo: {
|
||||
/** 合同系统/模板管理 保存 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/contractModelInfo/save', data),
|
||||
/** 合同系统/模板管理 删除 */
|
||||
get_deletes: (data?: QueryOptions) =>
|
||||
http.get('/app/contractModelInfo/deletes', data),
|
||||
/** 合同系统/模板管理 加载 */
|
||||
post_page: (data?: BodyOptions) =>
|
||||
http.post('/app/contractModelInfo/page', data),
|
||||
},
|
||||
contractReferType: {
|
||||
/** 合同系统/合同类型参照 查询 */
|
||||
get_list: (data?: QueryOptions) =>
|
||||
http.get('/app/contractReferType/list', data),
|
||||
/** 合同系统/合同类型参照 保存 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/contractReferType/save', data),
|
||||
/** 合同系统/合同类型参照 删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/contractReferType/deletes', data),
|
||||
},
|
||||
attachment: {
|
||||
/** 文件上传/下载(新) 附件加载 */
|
||||
get_list: (data?: QueryOptions) => http.get('/app/attachment/list', data),
|
||||
/** 文件上传/下载(新) 文件下载 */
|
||||
get_download: (data?: QueryOptions) =>
|
||||
http.get('/app/attachment/download/{fileUuid}', data),
|
||||
/** 文件上传/下载(新) 多文件上传 */
|
||||
post_uploads: (data?: BodyOptions) =>
|
||||
http.post('/app/attachment/uploads', data),
|
||||
},
|
||||
contractPayment: {
|
||||
/** 合同系统/履行/履行提示/合同付款 获取合同付款信息 */
|
||||
get_queryPaymentInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/contractPayment/queryPaymentInfo', data),
|
||||
/** 合同系统/归档/合同归档 历史记录 */
|
||||
get_historyPaymentInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/contractPayment/historyPaymentInfo', data),
|
||||
/** 合同系统/履行/履行提示/合同付款 保存付款申请 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/contractPayment/save', data),
|
||||
/** 合同系统/履行/履行提示/合同付款 查询流程未配置人员节点 */
|
||||
get_getFlowNodeUserConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/contractPayment/getFlowNodeUserConfig', data),
|
||||
/** 合同系统/履行/履行提示/合同付款 送审 */
|
||||
post_startWorkFlow: (data?: BodyOptions) =>
|
||||
http.post('/app/contractPayment/startWorkFlow', data),
|
||||
/** 合同系统/履行/履行提示/合同付款 审核通过 */
|
||||
post_submit: (data?: BodyOptions) =>
|
||||
http.post('/app/contractPayment/submit', data),
|
||||
/** 合同系统/履行/履行提示/合同付款 退回 */
|
||||
post_rollback: (data?: BodyOptions) =>
|
||||
http.post('/app/contractPayment/rollback', data),
|
||||
/** 合同系统/履行/履行提示/合同付款 待审核 */
|
||||
get_toDoPage: (data?: QueryOptions) =>
|
||||
http.get('/app/contractPayment/toDoPage', data),
|
||||
/** 合同系统/履行/履行提示/合同付款 已审核 */
|
||||
get_donePage: (data?: QueryOptions) =>
|
||||
http.get('/app/contractPayment/donePage', data),
|
||||
},
|
||||
selectMerchantsBasicInfo: {
|
||||
/** 合同系统/选商 分页查询 */
|
||||
get_page: (data?: QueryOptions) =>
|
||||
http.get('/app/selectMerchantsBasicInfo/page', data),
|
||||
/** 合同系统/选商 选商信息查询(单条) */
|
||||
get_getOne: (data?: QueryOptions) =>
|
||||
http.get('/app/selectMerchantsBasicInfo/getOne', data),
|
||||
/** 合同系统/选商 选商信息保存 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/selectMerchantsBasicInfo/save', data),
|
||||
/** 合同系统/选商 合同选商保存操作(多个对象) */
|
||||
post_saveMultiEntity: (data?: BodyOptions) =>
|
||||
http.post('/app/selectMerchantsBasicInfo/saveMultiEntity', data),
|
||||
/** 合同系统/选商 提交 */
|
||||
post_submit: (data?: BodyOptions) =>
|
||||
http.post('/app/selectMerchantsBasicInfo/submit', data),
|
||||
/** 合同系统/选商 退回 */
|
||||
post_rollback: (data?: BodyOptions) =>
|
||||
http.post('/app/selectMerchantsBasicInfo/rollback', data),
|
||||
/** 合同系统/选商废除 选商废除(弃用) */
|
||||
post_abolish: (data?: BodyOptions) =>
|
||||
http.post('/app/selectMerchantsBasicInfo/abolish', data),
|
||||
/** 合同系统/选商废除 选商废除(开始节点提交,非待办提交) */
|
||||
post_abolishFlowStart: (data?: BodyOptions) =>
|
||||
http.post('/app/selectMerchantsBasicInfo/abolishFlowStart', data),
|
||||
/** 合同系统/选商废除 提交 */
|
||||
post_abolishSubmit: (data?: BodyOptions) =>
|
||||
http.post('/app/selectMerchantsBasicInfo/abolishSubmit', data),
|
||||
/** 合同系统/选商废除 退回 */
|
||||
post_abolishRollback: (data?: BodyOptions) =>
|
||||
http.post('/app/selectMerchantsBasicInfo/abolishRollback', data),
|
||||
},
|
||||
lvxChange: {
|
||||
/** 合同系统/履行/履行提示/合同变更 保存合同变更申请 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/lvxChange/save', data),
|
||||
/** 合同系统/履行/履行提示/合同变更 获取合同变更信息 */
|
||||
get_getContractChangeInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/lvxChange/getContractChangeInfo', data),
|
||||
},
|
||||
contractRelieve: {
|
||||
/** 合同系统/履行/履行提示/合同解除 获取合同解除信息 */
|
||||
get_getContractRelieveInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/contractRelieve/getContractRelieveInfo', data),
|
||||
/** 合同系统/履行/履行提示/合同解除 保存合同解除信息 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/contractRelieve/save', data),
|
||||
},
|
||||
contractBreach: {
|
||||
/** 合同系统/履行/履行提示/合同违约情况 保存合同违约信息 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBreach/save', data),
|
||||
/** 合同系统/履行/履行提示/合同违约情况 获取合同违约信息 */
|
||||
get_getContractBreachInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/contractBreach/getContractBreachInfo', data),
|
||||
/** 合同系统/履行/履行提示/合同违约情况 查询流程未配置人员节点 */
|
||||
get_getFlowNodeUserConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/contractBreach/getFlowNodeUserConfig', data),
|
||||
/** 合同系统/履行/履行提示/合同违约情况 启动流程 */
|
||||
post_startWorkFlow: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBreach/startWorkFlow', data),
|
||||
/** 合同系统/履行/履行提示/合同违约情况 审核 */
|
||||
post_submit: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBreach/submit', data),
|
||||
/** 合同系统/履行/履行提示/合同违约情况 退回 */
|
||||
post_rollback: (data?: BodyOptions) =>
|
||||
http.post('/app/contractBreach/rollback', data),
|
||||
},
|
||||
lvxResult: {
|
||||
/** 合同系统/履行/履行结果 履行结果保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/lvxResult/save', data),
|
||||
},
|
||||
contractFiling: {
|
||||
/** 合同系统/履行/履行提示/临时归档 保存临时归档信息 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/contractFiling/save', data),
|
||||
/** 合同系统/履行/履行提示/临时归档 分页查询 */
|
||||
get_pageFillingList: (data?: QueryOptions) =>
|
||||
http.get('/app/contractFiling/pageFillingList', data),
|
||||
/** 合同系统/履行/履行提示/临时归档 回档 */
|
||||
post_update: (data?: BodyOptions) =>
|
||||
http.post('/app/contractFiling/update', data),
|
||||
/** 合同系统/履行/履行提示/临时归档 获取临时归档信息 */
|
||||
get_getLsgd: (data?: QueryOptions) =>
|
||||
http.get('/app/contractFiling/getLsgd', data),
|
||||
},
|
||||
biddingExpert: {
|
||||
/** 合同系统/选商/选商招标专家 招标专家查询 */
|
||||
get_list: (data?: QueryOptions) =>
|
||||
http.get('/app/biddingExpert/list', data),
|
||||
/** 合同系统/选商/选商招标专家 选商招标专家保存 */
|
||||
post_saveBatch: (data?: BodyOptions) =>
|
||||
http.post('/app/biddingExpert/saveBatch', data),
|
||||
/** 合同系统/选商/选商招标专家 选商招标专家删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/biddingExpert/deletes', data),
|
||||
},
|
||||
contractFilingFormal: {
|
||||
/** 合同系统/归档/合同归档 分页查询归档信息 */
|
||||
get_queryContractFiling: (data?: QueryOptions) =>
|
||||
http.get('/app/contractFilingFormal/queryContractFiling', data),
|
||||
/** 合同系统/归档/合同归档 获取合同招标选商申请信息 */
|
||||
get_getContractSupplier: (data?: QueryOptions) =>
|
||||
http.get('/app/contractFilingFormal/getContractSupplier', data),
|
||||
/** 合同系统/归档/合同归档 保存合同归档 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/contractFilingFormal/save', data),
|
||||
/** 合同系统/归档/合同回档 分页查询 */
|
||||
get_pageArchivedContract: (data?: QueryOptions) =>
|
||||
http.get('/app/contractFilingFormal/pageArchivedContract', data),
|
||||
/** 合同系统/归档/合同回档 回档 */
|
||||
post_saveFilingBack: (data?: BodyOptions) =>
|
||||
http.post('/app/contractFilingFormal/saveFilingBack', data),
|
||||
},
|
||||
lvxProduct: {
|
||||
/** 合同系统/履行/履行提示/产品或服务 获取合同产品信息 */
|
||||
get_getContractProductInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/lvxProduct/getContractProductInfo', data),
|
||||
/** 合同系统/履行/履行提示/产品或服务 累计收款金额 */
|
||||
get_getSumFromProduct: (data?: QueryOptions) =>
|
||||
http.get('/app/lvxProduct/getSumFromProduct', data),
|
||||
/** 合同系统/履行/履行提示/产品或服务 历史记录 */
|
||||
get_getListFromHistoryRecord: (data?: QueryOptions) =>
|
||||
http.get('/app/lvxProduct/getListFromHistoryRecord', data),
|
||||
/** 合同系统/履行/履行提示/产品或服务 保存合同产品服务 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/lvxProduct/save', data),
|
||||
},
|
||||
qdSign: {
|
||||
/** 合同系统/签订 签订查询 */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/qdSign/page', data),
|
||||
/** 合同系统/签订 获取合同签订信息 */
|
||||
get_getContractSignInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/qdSign/getContractSignInfo', data),
|
||||
/** 合同系统/签订 打印签订审批表 */
|
||||
get_createUserListWord: (data?: QueryOptions) =>
|
||||
http.get('/app/qdSign/createUserListWord', data),
|
||||
/** 合同系统/签订 打印文本 */
|
||||
get_textPrint: (data?: QueryOptions) =>
|
||||
http.get('/app/qdSign/textPrint', data),
|
||||
/** 合同系统/签订 保存送审 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/qdSign/save', data),
|
||||
/** 合同系统/签订 废除 */
|
||||
post_abolish: (data?: BodyOptions) =>
|
||||
http.post('/app/qdSign/abolish', data),
|
||||
},
|
||||
flowCenter: {
|
||||
/** 流程中心 启动流程 */
|
||||
post_start: (data?: BodyOptions) =>
|
||||
http.post('/app/flowCenter/start', data),
|
||||
/** 流程中心 审核通过 */
|
||||
post_agree: (data?: BodyOptions) =>
|
||||
http.post('/app/flowCenter/agree', data),
|
||||
/** 流程中心 审核退回 */
|
||||
post_rollback: (data?: BodyOptions) =>
|
||||
http.post('/app/flowCenter/rollback', data),
|
||||
/** 流程中心 获取待办 */
|
||||
post_getTodoList: (data?: BodyOptions) =>
|
||||
http.post('/app/flowCenter/getTodoList', data),
|
||||
/** 流程中心 获取已办 */
|
||||
post_doneList: (data?: BodyOptions) =>
|
||||
http.post('/app/flowCenter/doneList', data),
|
||||
/** 流程中心 审核撤回 */
|
||||
get_revoke: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/revoke', data),
|
||||
/** 流程中心 审核记录 */
|
||||
get_history: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/history', data),
|
||||
/** 流程中心 查看流程图 */
|
||||
get_getFlowImg: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/getFlowImg', data),
|
||||
/** 流程中心 获取可退回节点 */
|
||||
get_getReturnNode: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/getReturnNode', data),
|
||||
/** 流程中心 获取流程节点人员配置信息 */
|
||||
get_getNextNodeUserConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/getNextNodeUserConfig', data),
|
||||
/** 流程中心 获取待办数量 */
|
||||
get_getTodoListSize: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/getTodoListSize', data),
|
||||
/** 流程中心 获取当前审核节点配置信息 */
|
||||
get_getNodeConfigInfo: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/getNodeConfigInfo', data),
|
||||
/** 流程中心 获取下一节点配置信息 */
|
||||
get_getNextNodeConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/getNextNodeConfig', data),
|
||||
/** 流程中心 获取流程节点人员配置信息 */
|
||||
post_getFlowNodeUserConfig: (data?: BodyOptions) =>
|
||||
http.post('/app/flowCenter/getFlowNodeUserConfig', data),
|
||||
/** 流程中心 获取流程变量配置 */
|
||||
get_getFlowVariablesConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/getFlowVariablesConfig', data),
|
||||
/** 流程中心 获取流程所有人员配置信息 */
|
||||
get_getFlowUserConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/flowCenter/getFlowUserConfig', data),
|
||||
},
|
||||
rl: {
|
||||
moduleParameter: {
|
||||
/** 流程中心/流程规划 保存 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/rl/moduleParameter/save', data),
|
||||
/** 流程中心/流程规划 查询 */
|
||||
post_page: (data?: BodyOptions) =>
|
||||
http.post('/app/rl/moduleParameter/page', data),
|
||||
/** 流程中心/流程规划 删除 */
|
||||
get_deletes: (data?: QueryOptions) =>
|
||||
http.get('/app/rl/moduleParameter/deletes', data),
|
||||
/** 流程中心/流程规划 获取节点审核人 */
|
||||
get_getNextNodeUser: (data?: QueryOptions) =>
|
||||
http.get('/app/rl/moduleParameter/getNextNodeUser', data),
|
||||
},
|
||||
workFlow: {
|
||||
/** 合同系统 流程待办 */
|
||||
get_queryMyTodoTask: (data?: QueryOptions) =>
|
||||
http.get('/app/rl/workFlow/queryMyTodoTask', data),
|
||||
},
|
||||
},
|
||||
dutyCount: {
|
||||
/** 协同办公/订餐管理/值班天数 分页查询 */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/dutyCount/page', data),
|
||||
/** 协同办公/订餐管理/值班天数 批量保存 */
|
||||
post_saveBatch: (data?: BodyOptions) =>
|
||||
http.post('/app/dutyCount/saveBatch', data),
|
||||
/** 协同办公/订餐管理/值班天数 删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/dutyCount/deletes', data),
|
||||
},
|
||||
common: {
|
||||
/** 公共 获取请求ip */
|
||||
get_getClientIp: (data?: QueryOptions) =>
|
||||
http.get('/app/common/getClientIp', data),
|
||||
},
|
||||
address: {
|
||||
/** 协同办公/订餐管理/订餐地址 查询(分页) */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/address/page', data),
|
||||
/** 协同办公/订餐管理/订餐地址 保存 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/address/save', data),
|
||||
/** 协同办公/订餐管理/订餐地址 删除 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/address/deletes', data),
|
||||
},
|
||||
superviseFeedbackRecord: {
|
||||
/** 协同办公/督查督办/反馈记录 保存反馈记录 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/superviseFeedbackRecord/save', data),
|
||||
/** 协同办公/督查督办/反馈记录 查询反馈记录 */
|
||||
get_page: (data?: QueryOptions) =>
|
||||
http.get('/app/superviseFeedbackRecord/page', data),
|
||||
/** 协同办公/督查督办/反馈记录 删除反馈记录 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/superviseFeedbackRecord/deletes', data),
|
||||
},
|
||||
lxBasisSale: {
|
||||
/** 合同系统/签约依据 分页保存/修改 */
|
||||
post_save: (data?: BodyOptions) => http.post('/app/lxBasisSale/save', data),
|
||||
/** 合同系统/签约依据 查询 */
|
||||
get_page: (data?: QueryOptions) => http.get('/app/lxBasisSale/page', data),
|
||||
/** 合同系统/签约依据 删除测试 */
|
||||
post_deletes: (data?: BodyOptions) =>
|
||||
http.post('/app/lxBasisSale/deletes', data),
|
||||
},
|
||||
workFlow: {
|
||||
/** 合同系统 查询下一节点id */
|
||||
get_getNextNodeUserConfig: (data?: QueryOptions) =>
|
||||
http.get('/app/workFlow/getNextNodeUserConfig', data),
|
||||
/** 合同系统 获取可退回节点 */
|
||||
get_getBackNode: (data?: QueryOptions) =>
|
||||
http.get('/app/workFlow/getBackNode', data),
|
||||
/** 合同系统 审核记录 */
|
||||
get_history: (data?: QueryOptions) =>
|
||||
http.get('/app/workFlow/history', data),
|
||||
/** 合同系统 流程已办 */
|
||||
get_getDoneTaskByUserID: (data?: QueryOptions) =>
|
||||
http.get('/app/workFlow/getDoneTaskByUserID', data),
|
||||
},
|
||||
biddingResult: {
|
||||
/** 合同系统/选商/选商结果 分页查询 */
|
||||
get_page: (data?: QueryOptions) =>
|
||||
http.get('/app/biddingResult/page', data),
|
||||
/** 合同系统/选商/选商结果 保存 */
|
||||
post_save: (data?: BodyOptions) =>
|
||||
http.post('/app/biddingResult/save', data),
|
||||
},
|
||||
home: {
|
||||
/** 合同系统/首页待办/已办 待办 */
|
||||
get_todo: (data?: QueryOptions) => http.get('/app/home/todo', data),
|
||||
},
|
||||
};
|
Loading…
Reference in New Issue