|
@@ -3,7 +3,7 @@
|
|
|
v-bind="$attrs"
|
|
|
@register="register"
|
|
|
:title="title"
|
|
|
- :width="1000"
|
|
|
+ :width="600"
|
|
|
@visible-change="handleVisibleChange"
|
|
|
@cancel="resetFields"
|
|
|
@ok="handleSubmit"
|
|
@@ -22,10 +22,8 @@
|
|
|
import { BasicModal, useModalInner } from '/@/components/Modal';
|
|
|
import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
|
|
|
import { useMessage } from '/@/hooks/web/useMessage';
|
|
|
- import { uploadApi } from '/@/api/product/index';
|
|
|
- import { newAddNews, NewsDetail, newUpdateNews } from '/@/api/operate'
|
|
|
+ import { agentNewUpdate } from '/@/api/dealer'
|
|
|
import { useI18n } from '/@/hooks/web/useI18n';
|
|
|
- import { Tinymce } from '/@/components/Tinymce/index';
|
|
|
|
|
|
const { t } = useI18n();
|
|
|
export default defineComponent({
|
|
@@ -36,11 +34,13 @@
|
|
|
emits: ['update', 'register'],
|
|
|
setup(props, { emit }) {
|
|
|
const modelRef = ref({});
|
|
|
- const title = ref('新增新闻');
|
|
|
+ const title = ref('编辑经销商');
|
|
|
+ const preventAutoFill = ref(true);
|
|
|
const fileFlow = reactive({
|
|
|
coverImageUrl:''
|
|
|
})
|
|
|
const { createMessage } = useMessage();
|
|
|
+ const downTotalNum = ref(0)
|
|
|
const schemas: FormSchema[] = [
|
|
|
{
|
|
|
field: 'id',
|
|
@@ -49,126 +49,46 @@
|
|
|
label: 'id',
|
|
|
required: false,
|
|
|
},{
|
|
|
- field: 'language',
|
|
|
- component: 'Input',
|
|
|
- show:false,
|
|
|
- label: 'language',
|
|
|
- defaultValue:'cn',
|
|
|
- required: false,
|
|
|
- },{
|
|
|
- field: 'title',
|
|
|
- component: 'Input',
|
|
|
- required: true,
|
|
|
- label: '新闻标题',
|
|
|
- componentProps: {
|
|
|
- maxlength: 50,
|
|
|
- },
|
|
|
- colProps: {
|
|
|
- span: 22,
|
|
|
- },
|
|
|
- },{
|
|
|
- field: 'source',
|
|
|
- component: 'Input',
|
|
|
- label: '新闻来源',
|
|
|
- required: true,
|
|
|
- componentProps: {
|
|
|
- maxlength: 15,
|
|
|
- },
|
|
|
- colProps: {
|
|
|
- span: 22,
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- field: 'coverImageUrl',
|
|
|
- component: 'Upload',
|
|
|
- label: '封面',
|
|
|
- required: true,
|
|
|
- rules: [{ required: true, message: t('common.uploadMessge') }],
|
|
|
- // helpMessage: t('routes.corporation.uploadHelp'),
|
|
|
- itemProps: {
|
|
|
- validateTrigger: 'onBlur',
|
|
|
- },
|
|
|
+ field: 'majorAddNum',
|
|
|
+ component: 'InputNumber',
|
|
|
+ label: '专业会员(年)剩余可售 0 个 新增',
|
|
|
+ defaultValue: 0,
|
|
|
componentProps: {
|
|
|
- api: uploadApi,
|
|
|
- maxNumber: 1,
|
|
|
- maxSize: 1,
|
|
|
- accept: ['jpg'],
|
|
|
- afterFetch: function (data) {
|
|
|
- console.log('uploadApi',data)
|
|
|
- fileFlow.coverImageUrl = data.url
|
|
|
- return data;
|
|
|
- },
|
|
|
+ maxlength: 50,
|
|
|
+ min:0,
|
|
|
},
|
|
|
-
|
|
|
colProps: {
|
|
|
span: 22,
|
|
|
},
|
|
|
- },
|
|
|
- {
|
|
|
- field: 'newType',
|
|
|
- label: '类型',
|
|
|
- component: 'RadioButtonGroup',
|
|
|
- required: true,
|
|
|
- defaultValue: 2,
|
|
|
+ },{
|
|
|
+ field: 'highAddNum',
|
|
|
+ component: 'InputNumber',
|
|
|
+ label: '高级会员(年)剩余可售 0 个 新增',
|
|
|
+ defaultValue: 0,
|
|
|
+ ifShow:false,
|
|
|
componentProps: {
|
|
|
- onChange: NewTypeChange,
|
|
|
- options: [
|
|
|
- { label: '链接', value: 1 },
|
|
|
- { label: '图文', value: 2 },
|
|
|
- ],
|
|
|
+ maxlength: 50,
|
|
|
+ min:0,
|
|
|
},
|
|
|
- },{
|
|
|
- field: 'newsUrl',
|
|
|
- component: 'Input',
|
|
|
- label: '新闻链接',
|
|
|
- ifShow:false,
|
|
|
- required: true,
|
|
|
- colProps: {
|
|
|
- span: 22,
|
|
|
- },
|
|
|
- componentProps: {
|
|
|
- maxlength: 200,
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- field: 'content',
|
|
|
- label: '新闻内容',
|
|
|
- component: 'Input',
|
|
|
- required: true,
|
|
|
colProps: {
|
|
|
span: 22,
|
|
|
},
|
|
|
- rules: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- // @ts-ignore
|
|
|
- validator: async (rule, value) => {
|
|
|
- if (!value) {
|
|
|
- return Promise.reject('请输入新闻内容');
|
|
|
- }
|
|
|
- if (formatrichtext(value) > 10000) {
|
|
|
- /* eslint-disable-next-line */
|
|
|
- return Promise.reject('新闻内容不能超过10000');
|
|
|
- }
|
|
|
- return Promise.resolve();
|
|
|
- },
|
|
|
- trigger: 'change',
|
|
|
- },
|
|
|
- ],
|
|
|
- render: ({ model, field }) => {
|
|
|
- return h(Tinymce, {
|
|
|
- value: model[field],
|
|
|
- maxlength: 10000,
|
|
|
- onChange: (value: string) => {
|
|
|
- model[field] = value;
|
|
|
- },
|
|
|
- showImageUpload: true,
|
|
|
- });
|
|
|
+ },{
|
|
|
+ field: 'downAddNum',
|
|
|
+ component: 'InputNumber',
|
|
|
+ label: '场景下载剩余可售 0 次 新增',
|
|
|
+ defaultValue: 0,
|
|
|
+ componentProps: {
|
|
|
+ maxlength: 50,
|
|
|
+ min:0,
|
|
|
+ },
|
|
|
+ colProps: {
|
|
|
+ span: 22,
|
|
|
},
|
|
|
- },
|
|
|
+ }
|
|
|
];
|
|
|
const [registerForm, { validate, resetFields, setFieldsValue, updateSchema }] = useForm({
|
|
|
- labelWidth: 120,
|
|
|
+ labelWidth: 250,
|
|
|
schemas,
|
|
|
showActionButtonGroup: false,
|
|
|
actionColOptions: {
|
|
@@ -188,44 +108,47 @@
|
|
|
}
|
|
|
async function onDataReceive(data) {
|
|
|
modelRef.value = data
|
|
|
- resetFields();
|
|
|
- NewTypeChange(data.newType)
|
|
|
- if(data.id){
|
|
|
- title.value = '编辑新闻'
|
|
|
- const detail = await NewsDetail({id:data.id})
|
|
|
- setFieldsValue({
|
|
|
- ...detail,
|
|
|
- newsUrl:detail.newType == 1?detail.content:'',
|
|
|
- content:detail.newType != 1?detail.content:'',
|
|
|
- coverImageUrl:detail.coverImageUrl?[detail.coverImageUrl]:''
|
|
|
- });
|
|
|
- }else{
|
|
|
- title.value = '新增新闻'
|
|
|
- setFieldsValue({
|
|
|
- content:'',
|
|
|
- ...data,
|
|
|
- newType:2,
|
|
|
- });
|
|
|
- }
|
|
|
+ downTotalNum.value = data.downTotalNum
|
|
|
+ setFieldsValue({
|
|
|
+ id:data.id,
|
|
|
+ majorAddNum:0,
|
|
|
+ highAddNum:0,
|
|
|
+ downAddNum:0,
|
|
|
+ })
|
|
|
+ setTimeout(()=>{
|
|
|
+ updateSchema([{
|
|
|
+ field: 'majorAddNum',
|
|
|
+ label: `专业会员(年)剩余可售 ${data.majorAddNum || 0} 个 新增`,
|
|
|
+ componentProps:{
|
|
|
+ max:data.majorAddNum || 0,
|
|
|
+ }
|
|
|
+ },{
|
|
|
+ field: 'highAddNum',
|
|
|
+ label: `高级会员(年)剩余可售 ${data.highAddNum || 0} 个 新增`,
|
|
|
+ ifShow: data.highAddNum>0,
|
|
|
+ componentProps:{
|
|
|
+ max:data.highAddNum || 0,
|
|
|
+ }
|
|
|
+ },{
|
|
|
+ field: 'downAddNum',
|
|
|
+ label: `场景下载剩余可售 ${data.downAddNum || 0} 次 新增`,
|
|
|
+ componentProps:{
|
|
|
+ max:data.downAddNum || 0,
|
|
|
+ }
|
|
|
+ }])
|
|
|
+ },500)
|
|
|
}
|
|
|
- function NewTypeChange(val = 2){
|
|
|
- console.log('NewTypeChange',val)
|
|
|
- updateSchema([
|
|
|
- { field: 'content', ifShow:val == 2,},
|
|
|
- { field: 'newsUrl', ifShow:val != 2,},
|
|
|
- ])
|
|
|
- }
|
|
|
const handleSubmit = async () => {
|
|
|
const params = await validate();
|
|
|
- let apiUrl = title.value == '新增新闻'?newAddNews:newUpdateNews
|
|
|
- console.log('validate',params)
|
|
|
+ console.log('次',params)
|
|
|
const apiData = {
|
|
|
- ...params as any,
|
|
|
- coverImageUrl:params.coverImageUrl && params.coverImageUrl[0],
|
|
|
- content:params.newType == 1?params.newsUrl:params.content
|
|
|
+ id:params.id,
|
|
|
+ majorAddNum:params.majorAddNum || 0,
|
|
|
+ highAddNum:params.highAddNum || 0,
|
|
|
+ downAddNum:(params.downAddNum || 0) + downTotalNum.value,
|
|
|
}
|
|
|
try {
|
|
|
- await apiUrl(apiData);
|
|
|
+ await agentNewUpdate(apiData);
|
|
|
closeModal();
|
|
|
resetFields();
|
|
|
createMessage.success(t('common.optSuccess'));
|
|
@@ -243,7 +166,7 @@
|
|
|
registerForm,
|
|
|
model: modelRef,
|
|
|
fileFlow,
|
|
|
- NewTypeChange,
|
|
|
+ preventAutoFill,
|
|
|
handleVisibleChange,
|
|
|
handleSubmit,
|
|
|
addListFunc,
|