|
@@ -1,127 +1,90 @@
|
|
|
<script setup lang="ts">
|
|
|
import XEUtils from "xe-utils";
|
|
|
-import type { FormRules } from "element-plus";
|
|
|
+import { ElForm, FormRules } from "element-plus";
|
|
|
+import { useCompShallowRef } from "@/utils/useCompRef";
|
|
|
+import { UseDialogType } from "@/components/cy/CyDialog/index";
|
|
|
+import { BizException, ExceptionEnum } from "@/utils/BizException";
|
|
|
+import { saveOrderFrequency } from "@/api/orderZdMaintain";
|
|
|
+import {
|
|
|
+ frequencySort,
|
|
|
+ frequencyDays,
|
|
|
+ getFrequencyLabelName,
|
|
|
+} from "@/views/dictionary/orderZdMaintain/index";
|
|
|
|
|
|
const props = defineProps<{
|
|
|
info: any;
|
|
|
}>();
|
|
|
|
|
|
-const sort = [
|
|
|
- "早上",
|
|
|
- "day600",
|
|
|
- "day630",
|
|
|
- "day700",
|
|
|
- "day730",
|
|
|
- "day800",
|
|
|
- "day830",
|
|
|
- "day900",
|
|
|
- "day930",
|
|
|
- "day1000",
|
|
|
- "day1030",
|
|
|
- "day1100",
|
|
|
- "day1130",
|
|
|
- "day1200",
|
|
|
- "day1230",
|
|
|
- "下午",
|
|
|
- "day1300",
|
|
|
- "day1330",
|
|
|
- "day1400",
|
|
|
- "day1430",
|
|
|
- "day1500",
|
|
|
- "day1530",
|
|
|
- "day1600",
|
|
|
- "day1630",
|
|
|
- "day1700",
|
|
|
- "day1730",
|
|
|
- "day1800",
|
|
|
- "day1830",
|
|
|
- "day1900",
|
|
|
- "day1930",
|
|
|
- "day2000",
|
|
|
- "day2030",
|
|
|
- "day2100",
|
|
|
- "day2130",
|
|
|
- "day2200",
|
|
|
- "day2230",
|
|
|
- "day2300",
|
|
|
- "day2330",
|
|
|
- "第二天",
|
|
|
- "day2400",
|
|
|
- "day030",
|
|
|
- "day100",
|
|
|
- "day130",
|
|
|
- "day200",
|
|
|
- "day230",
|
|
|
- "day300",
|
|
|
- "day330",
|
|
|
- "day400",
|
|
|
- "day430",
|
|
|
- "day500",
|
|
|
- "day530",
|
|
|
-];
|
|
|
-
|
|
|
const rules: FormRules<any> = {
|
|
|
code: [
|
|
|
{ required: true, trigger: "blur", message: "必填" },
|
|
|
{
|
|
|
validator: (rule, value, callback) => {
|
|
|
- console.log(value);
|
|
|
- callback(new Error("cw"));
|
|
|
+ XEUtils.elRuleCharLength(value, callback, 10);
|
|
|
+ },
|
|
|
+ trigger: "change",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ comm: [
|
|
|
+ { required: true, trigger: "blur", message: "必填" },
|
|
|
+ {
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
+ XEUtils.elRuleCharLength(value, callback, 20);
|
|
|
+ },
|
|
|
+ trigger: "change",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ printName: [
|
|
|
+ { required: true, trigger: "blur", message: "必填" },
|
|
|
+ {
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
+ XEUtils.elRuleCharLength(value, callback, 10);
|
|
|
},
|
|
|
trigger: "change",
|
|
|
},
|
|
|
],
|
|
|
- comm: [{ required: true, trigger: "blur", message: "必填" }],
|
|
|
- printName: [{ required: true, trigger: "blur", message: "必填" }],
|
|
|
};
|
|
|
|
|
|
-function insertString(originalStr, insertStr, position) {
|
|
|
- return (
|
|
|
- originalStr.slice(0, position) + insertStr + originalStr.slice(position)
|
|
|
- );
|
|
|
-}
|
|
|
-
|
|
|
-function getLabelName(item: string) {
|
|
|
- const replace = item.replace("day", "");
|
|
|
- if (replace.length == 4) {
|
|
|
- const position = 2;
|
|
|
- const time = XEUtils.toNumber(replace.slice(0, position));
|
|
|
- const time12 = time - 12;
|
|
|
- if (time12 >= 0) {
|
|
|
- return getLabelName(replace.replace(time, time12));
|
|
|
- }
|
|
|
- return insertString(replace, ":", position);
|
|
|
- } else {
|
|
|
- return insertString(replace, ":", 1);
|
|
|
- }
|
|
|
-}
|
|
|
+const formRef = useCompShallowRef(ElForm);
|
|
|
|
|
|
function changeDay(val, name) {
|
|
|
if (val) {
|
|
|
props.info[name] = 1;
|
|
|
} else {
|
|
|
- props.info[name] = null;
|
|
|
+ props.info[name] = 0;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-const days = ["一", "二", "三", "四", "五", "六", "日"];
|
|
|
-
|
|
|
function changeWeek(val, index) {
|
|
|
if (val) {
|
|
|
- props.info[`week${index}`] = "Y";
|
|
|
+ props.info[`week${index}`] = 1;
|
|
|
} else {
|
|
|
- props.info[`week${index}`] = "N";
|
|
|
+ props.info[`week${index}`] = 0;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function getWekk(item: number) {
|
|
|
item -= 1;
|
|
|
- return `周${days[item]}`;
|
|
|
+ return `周${frequencyDays[item]}`;
|
|
|
}
|
|
|
+
|
|
|
+defineExpose<UseDialogType.Expose>({
|
|
|
+ async confirm() {
|
|
|
+ await formRef.value
|
|
|
+ .validate()
|
|
|
+ .then(() => {
|
|
|
+ saveOrderFrequency(props.info);
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ BizException(ExceptionEnum.MESSAGE_ERROR, "请修改有错误的地方");
|
|
|
+ });
|
|
|
+ },
|
|
|
+});
|
|
|
</script>
|
|
|
|
|
|
<template>
|
|
|
<el-form
|
|
|
+ ref="formRef"
|
|
|
inline
|
|
|
label-width="120px"
|
|
|
size="default"
|
|
@@ -130,21 +93,30 @@ function getWekk(item: number) {
|
|
|
:model="info"
|
|
|
>
|
|
|
<el-form-item label="编码:" prop="code">
|
|
|
- <el-input v-model="info.code" show-word-limit />
|
|
|
+ <el-input v-model="info.code" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="名称:" prop="comm">
|
|
|
- <el-input v-model="info.comm" maxlength="10" show-word-limit />
|
|
|
+ <el-input v-model="info.comm" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="打印名称:" prop="printName">
|
|
|
- <el-input v-model="info.printName" maxlength="5" />
|
|
|
+ <el-input v-model="info.printName" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="每周:">
|
|
|
+ <el-form-item label="嘱托:">
|
|
|
+ <el-switch
|
|
|
+ v-model="info.selfBuy"
|
|
|
+ active-value="2"
|
|
|
+ inactive-value="0"
|
|
|
+ active-text="是"
|
|
|
+ inactive-text="否"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="周/日:">
|
|
|
<el-switch
|
|
|
v-model="info.weekDay"
|
|
|
active-value="Y"
|
|
|
inactive-value="N"
|
|
|
- active-text="是"
|
|
|
- inactive-text="否"
|
|
|
+ active-text="周"
|
|
|
+ inactive-text="日"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="停用:">
|
|
@@ -156,14 +128,14 @@ function getWekk(item: number) {
|
|
|
inactive-text="否"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
- <template v-for="item in sort" :key="item">
|
|
|
+ <template v-for="item in frequencySort" :key="item">
|
|
|
<el-divider v-if="!item.startsWith('day')">
|
|
|
{{ item }}
|
|
|
</el-divider>
|
|
|
|
|
|
- <el-form-item v-else :label="getLabelName(item)">
|
|
|
+ <el-form-item v-else :label="getFrequencyLabelName(item)">
|
|
|
<el-checkbox
|
|
|
- :model-value="props.info[item] != null"
|
|
|
+ :model-value="props.info[item] === 1"
|
|
|
@update:modelValue="val => changeDay(val, item)"
|
|
|
/>
|
|
|
</el-form-item>
|
|
@@ -172,7 +144,7 @@ function getWekk(item: number) {
|
|
|
<template v-for="value in 7">
|
|
|
<el-form-item :label="getWekk(value)">
|
|
|
<el-checkbox
|
|
|
- :model-value="props.info[`week${value}`] === 'Y'"
|
|
|
+ :model-value="props.info[`week${value}`] === 1"
|
|
|
@update:modelValue="val => changeWeek(val, value)"
|
|
|
/>
|
|
|
</el-form-item>
|