feat: 合同新增自动补全交货日期功能
- 签订日期变更时自动计算交货日期(签约 + 1天 + 30天 → 按5日取整) - 选择合同模板或点击「自动补全交货日期」时自动替换合同内容中的交货时间占位符 - 新增 DC01-H 材质选项 - 修正按钮文案「管理合同」→「管理合同模板」
This commit is contained in:
@@ -8,7 +8,7 @@
|
|||||||
>
|
>
|
||||||
{{ template.dictLabel }}
|
{{ template.dictLabel }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button type="primary" @click="handleContractManagement">管理合同</el-button>
|
<el-button type="primary" @click="handleContractManagement">管理合同模板</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 合同模板管理对话框 -->
|
<!-- 合同模板管理对话框 -->
|
||||||
|
|||||||
@@ -158,6 +158,7 @@ export default {
|
|||||||
{ label: 'SPCC', value: 'SPCC' },
|
{ label: 'SPCC', value: 'SPCC' },
|
||||||
{ label: 'DX51D+Z', value: 'DX51D+Z' },
|
{ label: 'DX51D+Z', value: 'DX51D+Z' },
|
||||||
{ label: 'DC01', value: 'DC01' },
|
{ label: 'DC01', value: 'DC01' },
|
||||||
|
{ label: 'DC01-H', value: 'DC01-H' }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -97,6 +97,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="合同内容">
|
<el-form-item label="合同内容">
|
||||||
<ContractTemplateManager @select="handleTemplateSelect" />
|
<ContractTemplateManager @select="handleTemplateSelect" />
|
||||||
|
<el-button type="text" size="mini" @click="fillContractDates">自动补全交货日期</el-button>
|
||||||
<editor v-model="form.contractContent" :min-height="192" />
|
<editor v-model="form.contractContent" :min-height="192" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
@@ -186,6 +187,7 @@
|
|||||||
import { delOrder, listOrderPackaging, updateOrder, getOrder, addOrder } from "@/api/crm/order";
|
import { delOrder, listOrderPackaging, updateOrder, getOrder, addOrder } from "@/api/crm/order";
|
||||||
import { getDicts, addData, updateData } from "@/api/system/dict/data";
|
import { getDicts, addData, updateData } from "@/api/system/dict/data";
|
||||||
import { listDeliveryWaybill } from "@/api/wms/deliveryWaybill";
|
import { listDeliveryWaybill } from "@/api/wms/deliveryWaybill";
|
||||||
|
import dayjs from "dayjs";
|
||||||
import ContractList from "./components/ContractList.vue";
|
import ContractList from "./components/ContractList.vue";
|
||||||
import ContractPreview from "./components/ContractPreview.vue";
|
import ContractPreview from "./components/ContractPreview.vue";
|
||||||
import ContractTabs from "./components/ContractTabs.vue";
|
import ContractTabs from "./components/ContractTabs.vue";
|
||||||
@@ -327,6 +329,21 @@ export default {
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
// ignore parse errors
|
// 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: {
|
methods: {
|
||||||
@@ -357,6 +374,18 @@ export default {
|
|||||||
/** 处理合同模板选择 */
|
/** 处理合同模板选择 */
|
||||||
handleTemplateSelect(template) {
|
handleTemplateSelect(template) {
|
||||||
this.form.contractContent = template.dictValue;
|
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}止`
|
||||||
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
/** 处理合同状态更新 */
|
/** 处理合同状态更新 */
|
||||||
|
|||||||
Reference in New Issue
Block a user