feat(contract): 添加合同模板管理功能并优化导出逻辑

- 新增合同模板管理组件,支持模板的增删改查
- 优化合同导出功能,从订单项获取产品数据并添加金额大写转换
- 在合同编辑页面添加模板选择功能
- 为字典键值字段添加溢出提示
- 将数据键值输入框改为多行文本框
This commit is contained in:
2026-04-21 09:38:42 +08:00
parent e22648bff0
commit 626aca5b85
4 changed files with 433 additions and 7 deletions

View File

@@ -85,6 +85,7 @@
<ProductContent v-model="form.productContent" :readonly="false" />
</el-form-item> -->
<el-form-item label="合同内容">
<ContractTemplateManager @select="handleTemplateSelect" />
<editor v-model="form.contractContent" :min-height="192" />
</el-form-item>
@@ -161,17 +162,24 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<el-dialog>
<div>
<!-- 左右布局左侧是合同标题右侧是合同模板内容可以新增删除修改合同模板 -->
</div>
</el-dialog>
</div>
</template>
<script>
import { delOrder, listOrderPackaging, updateOrder, getOrder, addOrder } from "@/api/crm/order";
import { getDicts, addData, updateData } from "@/api/system/dict/data";
import { listDeliveryWaybill } from "@/api/wms/deliveryWaybill";
import ContractList from "./components/ContractList.vue";
import ContractPreview from "./components/ContractPreview.vue";
import ContractTabs from "./components/ContractTabs.vue";
import ProductContent from "./components/ProductContent.vue";
import ContractTemplateManager from "./components/ContractTemplateManager.vue";
import CustomerSelect from "@/components/KLPService/CustomerSelect/index.vue";
export default {
@@ -181,8 +189,10 @@ export default {
ContractPreview,
ContractTabs,
ProductContent,
ContractTemplateManager,
CustomerSelect,
},
// 'crm_contract_template'
dicts: ['wip_pack_saleman'],
data() {
return {
@@ -284,10 +294,13 @@ export default {
status: [
{ required: true, message: "合同状态不能为空", trigger: "change" }
],
}
},
};
},
created() {
this.getDictList();
},
methods: {
/** 处理客户选择 */
handleCustomerChange(customer) {
@@ -313,6 +326,13 @@ export default {
console.log(customer);
},
/** 处理合同模板选择 */
handleTemplateSelect(template) {
this.form.contractContent = template.dictValue;
},
/** 处理合同状态更新 */
handleStatusChange(status) {
this.form.status = status;