|
@@ -2,7 +2,8 @@
|
|
|
<BasicModal
|
|
|
v-bind="$attrs"
|
|
|
@register="register"
|
|
|
- :title="t('routes.corporation.addSubId')"
|
|
|
+ :minHeight="330"
|
|
|
+ :title="modalTitle"
|
|
|
@visible-change="handleVisibleChange"
|
|
|
@ok="handleSubmit"
|
|
|
@cancel="handleClose"
|
|
@@ -10,23 +11,24 @@
|
|
|
<div class="pt-2px pr-3px">
|
|
|
<BasicForm @register="registerForm">
|
|
|
<template #text="{ model, field }">
|
|
|
- {{ model[field] || '110' }}
|
|
|
+ {{ model[field] || '' }}
|
|
|
</template>
|
|
|
</BasicForm>
|
|
|
</div>
|
|
|
</BasicModal>
|
|
|
</template>
|
|
|
<script lang="ts">
|
|
|
- import { defineComponent, nextTick } from 'vue';
|
|
|
+ import { defineComponent, nextTick, ref, reactive } from 'vue';
|
|
|
import { BasicModal, useModalInner } from '/@/components/Modal';
|
|
|
import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
|
|
|
import { useMessage } from '/@/hooks/web/useMessage';
|
|
|
- import { checkUserAddAble } from '/@/api/corporation/modal';
|
|
|
+ // import { checkUserAddAble } from '/@/api/corporation/modal';
|
|
|
import { useI18n } from '/@/hooks/web/useI18n';
|
|
|
import { staffListApi } from '/@/api/staff/list';
|
|
|
import { ListApi } from '/@/api/scene/live';
|
|
|
- import { bindUserList } from '/@/api/scene/list';
|
|
|
+ import { bindUserList, createOrUpdate } from '/@/api/scene/list';
|
|
|
import dayjs from 'dayjs';
|
|
|
+ import { cloneDeep } from 'lodash-es';
|
|
|
|
|
|
const { t } = useI18n();
|
|
|
export default defineComponent({
|
|
@@ -37,9 +39,30 @@
|
|
|
emits: ['register', 'submit', 'tablelist'],
|
|
|
setup(props, { emit }) {
|
|
|
const { createMessage } = useMessage();
|
|
|
+ const modalTitle = ref('编辑');
|
|
|
+ const isPropsData = reactive({
|
|
|
+ isUpdate: true,
|
|
|
+ isSetData: true,
|
|
|
+ record: {},
|
|
|
+ });
|
|
|
+ const userIdList = reactive({
|
|
|
+ list: [],
|
|
|
+ });
|
|
|
const schemas: FormSchema[] = [
|
|
|
{
|
|
|
- field: 'companyId',
|
|
|
+ field: 'name',
|
|
|
+ label: '房间名称',
|
|
|
+ component: 'Input',
|
|
|
+ colProps: {
|
|
|
+ span: 22,
|
|
|
+ },
|
|
|
+ required: true,
|
|
|
+ componentProps: {
|
|
|
+ maxLength: 100,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: 'brandId',
|
|
|
label: '直播场景',
|
|
|
component: 'ApiSelect',
|
|
|
itemProps: {
|
|
@@ -60,10 +83,11 @@
|
|
|
page: 1,
|
|
|
limit: 1000,
|
|
|
},
|
|
|
+ onChange: brandIdChange,
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
- field: 'companyId',
|
|
|
+ field: 'anchorUserId',
|
|
|
label: '主持人',
|
|
|
component: 'ApiSelect',
|
|
|
itemProps: {
|
|
@@ -74,8 +98,9 @@
|
|
|
},
|
|
|
required: true,
|
|
|
componentProps: {
|
|
|
- api: bindUserList,
|
|
|
+ api: () => {},
|
|
|
showSearch: true,
|
|
|
+ disabled: true,
|
|
|
resultField: 'list',
|
|
|
labelField: 'name',
|
|
|
valueField: 'id',
|
|
@@ -102,13 +127,10 @@
|
|
|
},
|
|
|
valueFormat: 'YYYY-MM-DD HH:mm',
|
|
|
showTime: true,
|
|
|
- // disabledDate: (current) => {
|
|
|
- // return validateTime(current)
|
|
|
- // },
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
- field: 'incrementEndTime',
|
|
|
+ field: 'effectiveEndTime',
|
|
|
component: 'DatePicker',
|
|
|
label: '计划结束时间',
|
|
|
colProps: {
|
|
@@ -121,41 +143,38 @@
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
- field: 'roleId',
|
|
|
+ field: 'assistantUserId',
|
|
|
component: 'ApiSelect',
|
|
|
label: '助理',
|
|
|
- required: true,
|
|
|
itemProps: {
|
|
|
validateTrigger: 'blur',
|
|
|
},
|
|
|
colProps: {
|
|
|
span: 22,
|
|
|
},
|
|
|
+ required: true,
|
|
|
componentProps: {
|
|
|
api: staffListApi,
|
|
|
+ showSearch: true,
|
|
|
resultField: 'list',
|
|
|
labelField: 'nickName',
|
|
|
valueField: 'id',
|
|
|
+ immediate: true,
|
|
|
params: {
|
|
|
page: 1,
|
|
|
limit: 1000,
|
|
|
},
|
|
|
+ onChange: async (data) => {
|
|
|
+ console.log('data', data, arguments);
|
|
|
+ },
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
- field: 'roleId',
|
|
|
- component: 'ApiRadioGroup',
|
|
|
- label: '理手机号',
|
|
|
- required: true,
|
|
|
- slot: 'text',
|
|
|
- // itemProps: {
|
|
|
- // validateTrigger: 'blur',
|
|
|
- // },
|
|
|
- // componentProps: {
|
|
|
- // api: roleLIstApi,
|
|
|
- // labelField: 'roleName',
|
|
|
- // valueField: 'roleId',
|
|
|
- // },
|
|
|
+ field: 'id',
|
|
|
+ component: 'Input',
|
|
|
+ label: '测试',
|
|
|
+ ifShow: false,
|
|
|
+ // slot: 'text',
|
|
|
},
|
|
|
];
|
|
|
const [
|
|
@@ -165,6 +184,7 @@
|
|
|
// validateFields,
|
|
|
setFieldsValue,
|
|
|
// setProps
|
|
|
+ updateSchema,
|
|
|
resetFields,
|
|
|
validate,
|
|
|
},
|
|
@@ -177,43 +197,90 @@
|
|
|
},
|
|
|
});
|
|
|
let addListFunc = () => {};
|
|
|
- const [register, { closeModal }] = useModalInner((data) => {
|
|
|
+ const [register, { closeModal }] = useModalInner(async (data) => {
|
|
|
data && onDataReceive(data);
|
|
|
});
|
|
|
|
|
|
function validateTime(current) {
|
|
|
let { effectiveStartTime } = getFieldsValue();
|
|
|
+ console.log('effectiveStartTime', effectiveStartTime);
|
|
|
+ if (!effectiveStartTime) return;
|
|
|
return !dayjs(effectiveStartTime).isBefore(dayjs(current));
|
|
|
}
|
|
|
-
|
|
|
function onDataReceive(data) {
|
|
|
- console.log('Data Received', data);
|
|
|
+ isPropsData.isUpdate = data.isUpdate || false;
|
|
|
+ isPropsData.isSetData = data.isSetData || false;
|
|
|
+ isPropsData.record = data.record || {};
|
|
|
+ console.log('onDataReceive', data.record);
|
|
|
+ if (data.isUpdate) {
|
|
|
+ //编辑
|
|
|
+ setFieldsValue({
|
|
|
+ ...data.record,
|
|
|
+ effectiveEndTime:
|
|
|
+ data.record.effectiveEndTime &&
|
|
|
+ dayjs(data.record.effectiveEndTime).format('YYYY-MM-DD HH:mm:ss'),
|
|
|
+ effectiveStartTime:
|
|
|
+ data.record.effectiveStartTime &&
|
|
|
+ dayjs(data.record.effectiveStartTime).format('YYYY-MM-DD HH:mm:ss'),
|
|
|
+ });
|
|
|
+ updateSchema(
|
|
|
+ schemas.map((ele) => {
|
|
|
+ return {
|
|
|
+ ...ele,
|
|
|
+ slot: '',
|
|
|
+ };
|
|
|
+ }),
|
|
|
+ );
|
|
|
+ if (data.record && data.record.brandId) {
|
|
|
+ brandIdChange(data.record.brandId);
|
|
|
+ }
|
|
|
+ } else if (data.isSetData) {
|
|
|
+ //查看
|
|
|
+ let setSchemas = [];
|
|
|
+ setFieldsValue(data.record);
|
|
|
+ schemas.map((ele) => {
|
|
|
+ let setSchemasItem = {
|
|
|
+ ...ele,
|
|
|
+ slot: 'text',
|
|
|
+ };
|
|
|
+ setSchemas.push(cloneDeep(setSchemasItem));
|
|
|
+ });
|
|
|
+ updateSchema(setSchemas);
|
|
|
+ } else {
|
|
|
+ //新增
|
|
|
+ resetFields();
|
|
|
+ updateSchema(
|
|
|
+ schemas.map((ele) => {
|
|
|
+ return {
|
|
|
+ ...ele,
|
|
|
+ slot: '',
|
|
|
+ };
|
|
|
+ }),
|
|
|
+ );
|
|
|
+ }
|
|
|
}
|
|
|
const handleSubmit = async () => {
|
|
|
const values = await validate();
|
|
|
- let addTips = false;
|
|
|
- emit('tablelist', (list) => {
|
|
|
- addTips = list.some((ele) => ele.userName == values.phone);
|
|
|
- });
|
|
|
-
|
|
|
- if (addTips) {
|
|
|
- return createMessage.error('员工账号已被绑定');
|
|
|
- }
|
|
|
- //TODO hack parameter
|
|
|
- let res = await checkUserAddAble({ phone: values.phone });
|
|
|
- console.log('checkUserAddAble', res);
|
|
|
- if (res.result == false) {
|
|
|
- // addListFunc({ phone: values.phone, memoName: values.memoName });
|
|
|
- emit('submit', {
|
|
|
- phone: values.phone,
|
|
|
- memoName: values.memoName,
|
|
|
- roleId: values.roleId,
|
|
|
- });
|
|
|
- resetFields();
|
|
|
- closeModal();
|
|
|
- } else {
|
|
|
- createMessage.error('员工账号已被绑定');
|
|
|
+ console.log('validate', values);
|
|
|
+ let apiData = {
|
|
|
+ ...values,
|
|
|
+ effectiveEndTime: new Date(values.effectiveEndTime).getTime(),
|
|
|
+ effectiveStartTime: new Date(values.effectiveStartTime).getTime(),
|
|
|
+ };
|
|
|
+ if (isPropsData.isUpdate) {
|
|
|
+ apiData.id = isPropsData.record.id;
|
|
|
}
|
|
|
+ await createOrUpdate(apiData);
|
|
|
+ // console.log('ddda',res)
|
|
|
+ // if (res) {
|
|
|
+ // addListFunc({ phone: values.phone, memoName: values.memoName });
|
|
|
+ resetFields();
|
|
|
+ closeModal();
|
|
|
+ createMessage.success(t('common.optSuccess'));
|
|
|
+ emit('success');
|
|
|
+ // } else {
|
|
|
+ // createMessage.error('操作失败');
|
|
|
+ // }
|
|
|
};
|
|
|
function handleVisibleChange(v) {
|
|
|
v && props.userData && nextTick(() => onDataReceive(props.userData));
|
|
@@ -221,11 +288,37 @@
|
|
|
function handleClose() {
|
|
|
resetFields();
|
|
|
}
|
|
|
+ function brandIdChange(data) {
|
|
|
+ updateSchema({
|
|
|
+ field: 'anchorUserId',
|
|
|
+ componentProps: {
|
|
|
+ api: async function (params) {
|
|
|
+ const res = await bindUserList({ ...params, id: data });
|
|
|
+ return res;
|
|
|
+ },
|
|
|
+ disabled: data ? false : true,
|
|
|
+ showSearch: true,
|
|
|
+ resultField: 'list',
|
|
|
+ labelField: 'userName',
|
|
|
+ valueField: 'id',
|
|
|
+ immediate: true,
|
|
|
+ params: {
|
|
|
+ page: 1,
|
|
|
+ limit: 1000,
|
|
|
+ id: data,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }
|
|
|
return {
|
|
|
t,
|
|
|
+ modalTitle,
|
|
|
register,
|
|
|
+ userIdList,
|
|
|
schemas,
|
|
|
+ isPropsData,
|
|
|
registerForm,
|
|
|
+ brandIdChange,
|
|
|
handleVisibleChange,
|
|
|
handleSubmit,
|
|
|
addListFunc,
|