|
|
@@ -7,6 +7,8 @@
|
|
|
okText="立刻发布"
|
|
|
width="60%"
|
|
|
min-width="600px"
|
|
|
+ :height="550"
|
|
|
+ :showOkBtn="!isView"
|
|
|
@ok="handleOk"
|
|
|
>
|
|
|
<div class="pt-3px pr-3px">
|
|
|
@@ -16,7 +18,7 @@
|
|
|
</template>
|
|
|
<script lang="ts">
|
|
|
// computed
|
|
|
- import { defineComponent, ref } from 'vue';
|
|
|
+ import { defineComponent, h, ref } from 'vue';
|
|
|
|
|
|
import { addNoticeApi, editNoticeApi } from '/@/api/notification/list';
|
|
|
import { BasicModal, useModalInner } from '/@/components/Modal';
|
|
|
@@ -27,9 +29,12 @@
|
|
|
// import { useUserStore } from '/@/store/modules/user';
|
|
|
// import { Tinymce } from '/@/components/Tinymce';
|
|
|
import { uploadApi } from '/@/api/advertisement/list';
|
|
|
- import { formatToDateTime } from '/@/utils/dateUtil';
|
|
|
+ import { dateUtil, formatToDateTime } from '/@/utils/dateUtil';
|
|
|
+ import { TableImg } from '/@/components/Table';
|
|
|
|
|
|
const { t } = useI18n();
|
|
|
+ const now = dateUtil();
|
|
|
+
|
|
|
export default defineComponent({
|
|
|
components: { BasicModal, BasicForm },
|
|
|
props: {
|
|
|
@@ -65,13 +70,30 @@
|
|
|
span: 22,
|
|
|
},
|
|
|
},
|
|
|
-
|
|
|
{
|
|
|
field: 'selectTime',
|
|
|
component: 'RangePicker',
|
|
|
componentProps: {
|
|
|
format: 'YYYY-MM-DD HH:mm',
|
|
|
showTime: true,
|
|
|
+ disabledDate(current) {
|
|
|
+ return current && current < now;
|
|
|
+ },
|
|
|
+ disabledTime(_) {
|
|
|
+ // if (type === 'start') {
|
|
|
+ // return {
|
|
|
+ // // ...Array(dateUtil().minute()).keys()
|
|
|
+ // disabledHours: () => [...Array(dateUtil().hour()).keys()],
|
|
|
+ // disabledMinutes: () => [],
|
|
|
+ // disabledSeconds: () => [],
|
|
|
+ // };
|
|
|
+ // }
|
|
|
+ return {
|
|
|
+ disabledHours: () => [...Array(dateUtil().hour()).keys()],
|
|
|
+ disabledMinutes: () => [],
|
|
|
+ disabledSeconds: () => [],
|
|
|
+ };
|
|
|
+ },
|
|
|
},
|
|
|
label: '时间段',
|
|
|
required: true,
|
|
|
@@ -84,13 +106,17 @@
|
|
|
if (!value) {
|
|
|
return Promise.reject('请选择时间段');
|
|
|
}
|
|
|
- console.log('value[0]', value[0].unix());
|
|
|
- console.log('value[1]', value[1].unix());
|
|
|
- if (value[0].unix() > value[1].unix() - 60) {
|
|
|
+ // console.log('check', rule, value, record);
|
|
|
+ // // console.log('value[1]', value[1].unix());
|
|
|
+ if (value[0].unix() > value[1].unix()) {
|
|
|
return Promise.reject('开始时间要小于结束时间');
|
|
|
}
|
|
|
+ if (value[0].unix() > value[1].unix() - 300) {
|
|
|
+ return Promise.reject('时间段最小5分钟');
|
|
|
+ }
|
|
|
return Promise.resolve();
|
|
|
},
|
|
|
+
|
|
|
trigger: 'change',
|
|
|
},
|
|
|
],
|
|
|
@@ -143,7 +169,7 @@
|
|
|
validateTrigger: 'blur',
|
|
|
},
|
|
|
ifShow: ({ model }) => {
|
|
|
- return model['type'] === 1;
|
|
|
+ return model['type'] === 1 && !isView.value;
|
|
|
},
|
|
|
componentProps: {
|
|
|
api: uploadApi,
|
|
|
@@ -162,10 +188,35 @@
|
|
|
span: 22,
|
|
|
},
|
|
|
},
|
|
|
+ {
|
|
|
+ field: 'content2Image',
|
|
|
+ component: 'Input',
|
|
|
+ required: true,
|
|
|
+ ifShow: ({ model }) => {
|
|
|
+ return model['type'] === 1 && isView.value;
|
|
|
+ },
|
|
|
+ render: ({ model, field }) => {
|
|
|
+ return h(TableImg, {
|
|
|
+ imgList: [model[field]],
|
|
|
+ size: 160,
|
|
|
+ style: {
|
|
|
+ height: 160,
|
|
|
+ },
|
|
|
+ });
|
|
|
+ },
|
|
|
+ label: '内容',
|
|
|
+ colProps: {
|
|
|
+ span: 10,
|
|
|
+ },
|
|
|
+ },
|
|
|
];
|
|
|
const title = ref('创新消息');
|
|
|
const { createMessage } = useMessage();
|
|
|
const [registerForm, { validate, resetFields, setFieldsValue, updateSchema }] = useForm({
|
|
|
+ fieldMapToTime: [
|
|
|
+ // 支持多个字段
|
|
|
+ ['selectTime', ['startTime', 'endTime'], 'YYYY-MM-DD HH:mm'],
|
|
|
+ ],
|
|
|
labelWidth: 120,
|
|
|
schemas,
|
|
|
showActionButtonGroup: false,
|
|
|
@@ -191,7 +242,7 @@
|
|
|
});
|
|
|
if (data.isView) {
|
|
|
isView.value = true;
|
|
|
- title.value = '编辑消息';
|
|
|
+ title.value = '查看消息';
|
|
|
setFieldsValue({
|
|
|
...data,
|
|
|
});
|
|
|
@@ -208,6 +259,7 @@
|
|
|
if (data.type === 1) {
|
|
|
setFieldsValue({
|
|
|
content2: [data.content],
|
|
|
+ content2Image: [data.content],
|
|
|
});
|
|
|
}
|
|
|
updateSchemas = schemas.map((item: FormSchema) => {
|
|
|
@@ -225,6 +277,13 @@
|
|
|
|
|
|
async function handleOk() {
|
|
|
let data = await validate();
|
|
|
+ if (
|
|
|
+ data.selectTime[0].valueOf() < dateUtil().valueOf() ||
|
|
|
+ data.selectTime[1].valueOf() < dateUtil().valueOf()
|
|
|
+ ) {
|
|
|
+ createMessage.warn('开始或结束时间不能少于当前时间');
|
|
|
+ return;
|
|
|
+ }
|
|
|
console.log('data', data);
|
|
|
|
|
|
const requestApi = data.id ? editNoticeApi : addNoticeApi;
|