diff --git a/klp-ui/src/views/crm/contract/components/ContractTemplateManager.vue b/klp-ui/src/views/crm/contract/components/ContractTemplateManager.vue index a08a3482..d7ce2919 100644 --- a/klp-ui/src/views/crm/contract/components/ContractTemplateManager.vue +++ b/klp-ui/src/views/crm/contract/components/ContractTemplateManager.vue @@ -8,7 +8,7 @@ > {{ template.dictLabel }} - 管理合同 + 管理合同模板 diff --git a/klp-ui/src/views/crm/contract/components/ProductContent.vue b/klp-ui/src/views/crm/contract/components/ProductContent.vue index ef981297..39f75ce0 100644 --- a/klp-ui/src/views/crm/contract/components/ProductContent.vue +++ b/klp-ui/src/views/crm/contract/components/ProductContent.vue @@ -158,6 +158,7 @@ export default { { label: 'SPCC', value: 'SPCC' }, { label: 'DX51D+Z', value: 'DX51D+Z' }, { label: 'DC01', value: 'DC01' }, + { label: 'DC01-H', value: 'DC01-H' } ] } }, diff --git a/klp-ui/src/views/crm/contract/index.vue b/klp-ui/src/views/crm/contract/index.vue index 059b4d28..dfa3ef02 100644 --- a/klp-ui/src/views/crm/contract/index.vue +++ b/klp-ui/src/views/crm/contract/index.vue @@ -97,6 +97,7 @@ + 自动补全交货日期 @@ -186,6 +187,7 @@ 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 dayjs from "dayjs"; import ContractList from "./components/ContractList.vue"; import ContractPreview from "./components/ContractPreview.vue"; import ContractTabs from "./components/ContractTabs.vue"; @@ -327,6 +329,21 @@ export default { } catch (e) { // ignore parse errors } + }, + 'form.signTime': function (newVal) { + if (!newVal) return; + const signDate = dayjs(newVal); + const minDate = signDate.add(1, 'day').add(30, 'day'); + let day = minDate.date(); + const daysInMonth = minDate.daysInMonth(); + let targetDay = Math.ceil(day / 5) * 5; + let result; + if (targetDay > daysInMonth) { + result = minDate.add(1, 'month').date(5); + } else { + result = minDate.date(targetDay); + } + this.form.deliveryDate = result.format('YYYY-MM-DD'); } }, methods: { @@ -357,6 +374,18 @@ export default { /** 处理合同模板选择 */ handleTemplateSelect(template) { this.form.contractContent = template.dictValue; + this.fillContractDates(); + }, + + /** 自动补全合同内容中的交货日期 */ + fillContractDates() { + if (!this.form.signTime || !this.form.deliveryDate || !this.form.contractContent) return; + const startDate = dayjs(this.form.signTime).add(1, 'day').format('YYYY年MM月DD日'); + const endDate = dayjs(this.form.deliveryDate).format('YYYY年MM月DD日'); + this.form.contractContent = this.form.contractContent.replace( + /(交\(提\)货时间:)[^<]*/, + `$1自 ${startDate}起至 ${endDate}止` + ); }, /** 处理合同状态更新 */