文件模板配置

This commit is contained in:
wangyajie 2025-06-20 17:10:02 +08:00
parent 9fccc00ac0
commit 7e291eeacc
3 changed files with 105 additions and 70 deletions

View File

@ -46,7 +46,14 @@
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column v-if="true" label="模板ID" align="center" prop="id" />
<el-table-column label="模板名称" align="center" prop="templateName" />
<el-table-column label="模板类型" align="center" prop="templateType" />
<el-table-column label="模板类型" align="center" prop="templateType" >
<template #default="scope">
<!-- <el-radio-group v-model="scope.row.templateStatus">
<el-radio v-for="dict in sys_normal_disable" :key="dict.value" :value="dict.value">{{ dict.label }}</el-radio>
</el-radio-group> -->
{{ templateTypeObj[scope.row.templateType]}}
</template>
</el-table-column>
<el-table-column label="状态" align="center" prop="templateStatus" >
<template #default="scope">
<!-- <el-radio-group v-model="scope.row.templateStatus">
@ -63,13 +70,13 @@
<el-button v-hasPermi="['demo:demo:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)"></el-button>
</el-tooltip> -->
<el-tooltip content="配置" placement="top">
<el-button v-hasPermi="['fy:project:edit']" link type="primary" @click="handleUpdate(scope.row)">配置</el-button>
<el-button v-hasPermi="['bj:template:edit']" link type="primary" @click="handleUpdate(scope.row)">配置</el-button>
</el-tooltip>
<el-tooltip content="日志" placement="top">
<el-button v-hasPermi="['fy:project:edit']" link type="primary" @click="handLogItem(scope.row)">日志</el-button>
<el-button v-hasPermi="['bj:template:edit']" link type="primary" @click="handLogItem(scope.row)">日志</el-button>
</el-tooltip>
<el-tooltip :content="scope.row.templateStatus===1?'停用':'启用'" placement="top">
<el-button v-hasPermi="['demo:demo:remove']" link type="primary" @click="handleDelete(scope.row)"> {{ scope.row.templateStatus===1?"停用":'启用' }}</el-button>
<el-button v-hasPermi="['bj:template:edit']" link type="primary" @click="handleDelete(scope.row)"> {{ scope.row.templateStatus===1?"停用":'启用' }}</el-button>
</el-tooltip>
</template>
</el-table-column>
@ -156,20 +163,22 @@
</el-dialog>
<!-- 修改 对话框 -->
<el-dialog v-model="dialogSet.visible" :title="dialog.title" width="500px" append-to-body>
<el-form ref="demoFormRef" :model="form" :rules="rules" label-width="80px">
<el-form-item label="职务" prop="templateName">
<el-form ref="demoFormRef" :model="form" :rules="rules" label-width="120px">
<!-- 报价单配置 -->
<div v-if="dialogSet.type==1">
<el-form-item label="职务:" prop="templateName">
<el-input v-model="form.templateName" maxlength="50" placeholder="请输入职务" />
</el-form-item>
<el-form-item label="邮箱" prop="templateName">
<el-input v-model="form.templateName" maxlength="50" placeholder="请输入邮箱" />
<el-form-item label="邮箱" prop="templateName">
<el-input v-model="form.quotationConfig.templateName" maxlength="50" placeholder="请输入邮箱" />
</el-form-item>
<el-form-item label="联系人" prop="templateName">
<el-input v-model="form.templateName" maxlength="50" placeholder="请输入联系人" />
<el-form-item label="联系人" prop="templateName">
<el-input v-model="form.quotationConfig.templateName" maxlength="50" placeholder="请输入联系人" />
</el-form-item>
<el-form-item v-if="dialog.type=='add'" label="模板类型" prop="templateType">
<el-form-item v-if="dialog.type=='add'" label="模板类型" prop="templateType">
<!-- <el-input v-model="form.classificationEnName" maxlength="60" placeholder="请输入英文名称" /> -->
<el-select v-model="form.templateType" placeholder="模板类型" clearable>
<el-select v-model="form.quotationConfig.templateType" placeholder="模板类型" clearable>
<el-option v-for="dict in templateTypeArr" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
@ -177,7 +186,7 @@
<el-button type="primary" @click="addItem">添加</el-button>
</el-form-item>
<el-table v-loading="loading" @cell-click="getCell" border :data="detailList" @selection-change="handleSelectionChange">
<el-table v-loading="loading" @cell-click="getCell" border :data="form.quotationConfig.quotationContactsList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="index" label="序号" width="55" align="center"/> -->
<!-- <el-table-column v-if="true" label="电话" align="center" prop="id" /> -->
<el-table-column label="电话" align="center" prop="classificationDetailCnName" >
@ -210,11 +219,11 @@
</template>
</el-table-column>
</el-table>
<el-form-item label="备注:" required>
<el-form-item style="margin-top: 10px;" label="备注:" required>
<el-button type="primary" @click="addItem">添加</el-button>
</el-form-item>
<el-table v-loading="loading" @cell-click="getCell" border :data="detailList" @selection-change="handleSelectionChange">
<el-table v-loading="loading" @cell-click="getCell" border :data="form.quotationConfig.remarkList" @selection-change="handleSelectionChange">
<el-table-column type="index" label="序号" width="55" align="center"/>
<el-table-column label="备注内容" align="center" prop="classificationDetailCnName" >
@ -238,20 +247,21 @@
</template>
</el-table-column>
</el-table>
</div>
<!-- 费用确认 -->
<div v-if="dialogSet.type==2">
<el-form-item label="备注加粗首行:" required>
<el-button type="primary" @click="addItem">添加</el-button>
<el-input v-model="form.feeConfig.firstLine" maxlength="50" placeholder="请输入户名" />
</el-form-item>
<el-table v-loading="loading" @cell-click="getCell" border :data="detailList" @selection-change="handleSelectionChange">
<el-button type="primary" @click="addItem" style="margin-bottom:10px;">添加</el-button>
<el-table v-loading="loading" @cell-click="getCell" border :data="form.quotationContactsList" @selection-change="handleSelectionChange">
<el-table-column type="index" label="序号" width="55" align="center"/>
<el-table-column label="备注内容" align="center" prop="classificationDetailCnName" >
<el-table-column label="备注内容" align="center" prop="name" >
<template #default="scope">
<el-input v-model="scope.row.classificationDetailCnName" @change="handleBlur(scope.row)"
<el-input v-model="scope.row.name" @change="handleBlur(scope.row)"
@blur="handleBlur(scope.row)" label="手动输入" v-if="scope.row.id == tabRowIndex && scope.column.label == tabColumnIndex"></el-input>
<div v-else>
{{scope.row.classificationDetailCnName}}
{{scope.row.name}}
</div>
</template>
</el-table-column>
@ -262,64 +272,68 @@
<el-button v-hasPermi="['demo:demo:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)"></el-button>
</el-tooltip> -->
<el-tooltip content="删除" placement="top">
<el-button v-hasPermi="['demo:demo:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)"></el-button>
<el-button v-hasPermi="['bj:template:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)"></el-button>
</el-tooltip>
</template>
</el-table-column>
</el-table>
</div>
<!-- 账户信息 -->
<div v-if="dialogSet.type==0">
中文账户信息
<el-form-item label="户名" prop="templateName">
<el-input v-model="form.templateName" maxlength="50" placeholder="请输入户名" />
<el-form-item label="户名" prop="accountHolderNameCn">
<el-input v-model="form.accountConfig.accountHolderNameCn" maxlength="50" placeholder="请输入户名" />
</el-form-item>
<el-form-item label="开户行" prop="templateName">
<el-input v-model="form.templateName" maxlength="50" placeholder="请输入开户行" />
<el-form-item label="开户行" prop="bankAccountNumberCn">
<el-input v-model="form.accountConfig.bankAccountNumberCn" maxlength="50" placeholder="请输入开户行" />
</el-form-item>
<el-form-item label="账号" prop="templateName">
<el-input v-model="form.templateName" maxlength="50" placeholder="请输入账号" />
<el-form-item label="账号" prop="bankNameCn">
<el-input v-model="form.accountConfig.bankNameCn" maxlength="50" placeholder="请输入账号" />
</el-form-item>
<el-form-item label="纳税人识别号" prop="templateName">
<el-input v-model="form.templateName" maxlength="50" placeholder="请输入纳税人识别号" />
<el-form-item label="纳税人识别号" prop="swiftCodeCn">
<el-input v-model="form.accountConfig.swiftCodeCn" maxlength="50" placeholder="请输入纳税人识别号" />
</el-form-item>
<el-form-item label="地址" prop="templateName">
<el-input v-model="form.templateName" maxlength="50" placeholder="请输入地址" />
<el-form-item label="地址" prop="bankAddressCn">
<el-input v-model="form.accountConfig.bankAddressCn" maxlength="50" placeholder="请输入地址" />
</el-form-item>
<el-form-item label="联系电话" prop="templateName">
<el-input v-model="form.templateName" maxlength="50" placeholder="请输入联系电话" />
<el-form-item label="联系电话" prop="phoneCn">
<el-input v-model="form.accountConfig.phoneCn" maxlength="50" placeholder="请输入联系电话" />
</el-form-item>
<el-form-item label="邮箱" prop="templateName">
<el-input v-model="form.templateName" maxlength="50" placeholder="请输入邮箱" />
<el-form-item label="邮箱" prop="emailCn">
<el-input v-model="form.accountConfig.emailCn" maxlength="50" placeholder="请输入邮箱" />
</el-form-item>
<el-form-item label="美元银行行号" prop="templateName">
<el-input v-model="form.templateName" maxlength="50" placeholder="请输入美元银行行号" />
<el-form-item label="美元银行行号" prop="usdBankNumberCn">
<el-input v-model="form.accountConfig.usdBankNumberCn" maxlength="50" placeholder="请输入美元银行行号" />
</el-form-item>
英文账户信息
<el-form-item label="Account Holder Name" prop="templateName">
<el-input v-model="form.templateName" maxlength="50" placeholder="请输入户名" />
<el-form-item label="Account Holder Name" prop="accountHolderNameEn">
<el-input v-model="form.accountConfig.accountHolderNameEn" maxlength="50" placeholder="请输入户名" />
</el-form-item>
<el-form-item label="Bank Account Number" prop="templateName">
<el-input v-model="form.templateName" maxlength="50" placeholder="请输入开户行" />
<el-form-item label="Bank Account Number" prop="bankAccountNumberEn">
<el-input v-model="form.accountConfig.bankAccountNumberEn" maxlength="50" placeholder="请输入开户行" />
</el-form-item>
<el-form-item label="Bank Name" prop="templateName">
<el-input v-model="form.templateName" maxlength="50" placeholder="请输入账号" />
<el-form-item label="Bank Name" prop="bankNameEn">
<el-input v-model="form.accountConfig.bankNameEn" maxlength="50" placeholder="请输入账号" />
</el-form-item>
<el-form-item label="SWIFT Code" prop="templateName">
<el-input v-model="form.templateName" maxlength="50" placeholder="请输入纳税人识别号" />
<el-form-item label="SWIFT Code" prop="swiftCodeEn">
<el-input v-model="form.accountConfig.swiftCodeEn" maxlength="50" placeholder="请输入纳税人识别号" />
</el-form-item>
<el-form-item label="Bank Address" prop="templateName">
<el-input v-model="form.templateName" maxlength="50" placeholder="请输入地址" />
<el-form-item label="Bank Address" prop="bankAddressEn">
<el-input v-model="form.accountConfig.bankAddressEn" maxlength="50" placeholder="请输入地址" />
</el-form-item>
<el-form-item label="Phone" prop="templateName">
<el-input v-model="form.templateName" maxlength="50" placeholder="请输入联系电话" />
<el-form-item label="Phone" prop="phoneEn">
<el-input v-model="form.accountConfig.phoneEn" maxlength="50" placeholder="请输入联系电话" />
</el-form-item>
<el-form-item label="Email" prop="templateName">
<el-input v-model="form.templateName" maxlength="50" placeholder="请输入邮箱" />
<el-form-item label="Email" prop="emailEn">
<el-input v-model="form.accountConfig.emailEn" maxlength="50" placeholder="请输入邮箱" />
</el-form-item>
<el-form-item label="USD Account Number" prop="templateName">
<el-input v-model="form.templateName" maxlength="50" placeholder="请输入美元银行行号" />
<el-form-item label="USD Account Number" prop="usdAccountNumber">
<el-input v-model="form.accountConfig.usdAccountNumber" maxlength="50" placeholder="请输入美元银行行号" />
</el-form-item>
<el-form-item label="USD bank number" prop="templateName">
<el-input v-model="form.templateName" maxlength="50" placeholder="请输入美元银行行号" />
<el-form-item label="USD bank number" prop="usdBankNumberEn">
<el-input v-model="form.accountConfig.usdBankNumberEn" maxlength="50" placeholder="请输入美元银行行号" />
</el-form-item>
</div>
</el-form>
<template #footer>
<div class="dialog-footer">
@ -330,11 +344,15 @@
</el-dialog>
</div>
</template>
<style scoped lang="scss">
::v-deep .el-form-item__label{
justify-content: flex-start;
}
</style>
<script setup name="Demo" lang="ts">
// import { listDemo, getDemo, delDemo, addDemo, updateDemo } from '@/api/demo/demo';
import { fileTemplateConfigList, fileTemplateConfigDropList, addFileTemplateConfigDetail, fileTemplateConfig, fileTemplateConfigSwitch } from '@/api/fileTemplate';
import { operationLogItem } from '@/api/system/log';
//import { listDemo, getDemo, delDemo, addDemo, updateDemo } from '@/api/demo/demo';
import { fileTemplateConfigList, fileTemplateConfigDropList, addFileTemplateConfigDetail, fileTemplateConfig, fileTemplateConfigSwitch } from '@/api/fileTemplate';
import { operationLogItem } from '@/api/system/log';
import { DemoVO, DemoQuery, DemoForm } from '@/api/expense/types';
@ -372,6 +390,11 @@ import { operationLogItem } from '@/api/system/log';
{ label: "报价单",value: 1},
{ label: "费用确认",value: 2},
]
const templateTypeObj={
0:'账户信息',
1:'报价单',
2:'费用确认',
}
const logOperateType=ref([ '新增','修改' ,'删除' ,'配置','启用','停用'])
const demoList = ref<DemoVO[]>([]);
const buttonLoading = ref(false);
@ -404,6 +427,18 @@ import { operationLogItem } from '@/api/system/log';
});
const initFormData: DemoForm = {
classificationCnName: undefined,
quotationConfig:{//
position:undefined,
email:undefined,
contacts:undefined,
quotationContactsList:[],
remarkList:[]
},
accountConfig:{},//
feeConfig:{ //
firstLine:undefined,
name:[]
}
};
const data = reactive<PageData<DemoForm, DemoQuery>>({
form: { ...initFormData },
@ -487,7 +522,7 @@ import { operationLogItem } from '@/api/system/log';
};
tabRowIndex.value = null;
tabColumnIndex.value = null;
};
};
/** 新增按钮操作 */
const handleAdd = () => {
reset();
@ -532,7 +567,7 @@ import { operationLogItem } from '@/api/system/log';
// detailListArray.value= arr
dialogSet.visible = true;
dialogSet.type = 'edit';
dialogSet.type = row.templateType;
dialogSet.title = '费用项配置';
};
const addItem = ()=>{

View File

@ -28,7 +28,7 @@
<template #prefix><svg-icon icon-class="password" class="el-input__icon input-icon" /></template>
</el-input>
</el-form-item>
<el-form-item v-if="captchaEnabled" prop="code">
<el-form-item v-if="false" prop="code">
<el-input
v-model="loginForm.code"
size="large"

View File

@ -24,8 +24,8 @@ export default defineConfig(({ mode, command }) => {
open: true,
proxy: {
[env.VITE_APP_BASE_API]: {
// target: 'http://192.168.0.109:8112', //
target: 'http://124.236.46.74:8109/api/', //
target: 'http://192.168.0.79:8112', //
// target: 'http://124.236.46.74:8109/api/', //
// target: 'http://localhost:8080',
changeOrigin: true,
ws: true,