|
@@ -1,37 +1,41 @@
|
|
|
<template>
|
|
|
- <el-form :model="formData" label-width="100px" ref="ruleForm" :rules="rules" v-loading="loading" class="pr-4">
|
|
|
+ <el-form :model="formData" label-width="120px" ref="ruleForm" :rules="rules" v-loading="loading" class="pr-4">
|
|
|
<div class="flex flex-row justify-between">
|
|
|
<div class="w-full">
|
|
|
- <el-form-item label="登录账号" prop="email">
|
|
|
- <el-input v-model="formData.email" placeholder="请填写登录账号" />
|
|
|
+ <el-form-item label="小程序名称" prop="email">
|
|
|
+ <el-input v-model="formData.email" placeholder="请输入小程序名称" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="用户名" prop="username">
|
|
|
- <el-input v-model="formData.username" placeholder="请填写用户名" />
|
|
|
+ <el-form-item label="所属公司" prop="username">
|
|
|
+ <el-input v-model="formData.username" placeholder="请输入所属公司" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="密码" prop="password">
|
|
|
+ <el-form-item label="对应剧场名称" v-if="!props.primary" prop="password">
|
|
|
<el-input v-model="formData.password" clearable type="password" autocomplete="new-password" size="large"
|
|
|
- placeholder="密码" show-password :prefix-icon="Lock" class="h-12 text-base" />
|
|
|
+ placeholder="请输入对应剧场名称" show-password class="h-12 text-base" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="确认密码" prop="password_confirmation">
|
|
|
- <el-input v-model="formData.password_confirmation" clearable type="password" autocomplete="new-password"
|
|
|
- size="large" placeholder="确认密码" show-password :prefix-icon="Lock" class="h-12 text-base" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="绑定小程序" prop="applet">
|
|
|
- <el-select v-model="formData.applet" remote filterable :remote-method="remoteMethod" clearable
|
|
|
- placeholder="选择CP方">
|
|
|
+ <el-form-item label="类型" prop="miniProgramIds">
|
|
|
+ <el-select class="w-full" v-model="formData.miniProgramIds" remote filterable multiple
|
|
|
+ :remote-method="remoteMethod" clearable placeholder="选择类型">
|
|
|
<el-option v-for="item in cpList" :key="item.cp_id" :label="item.cp_name" :value="item.cp_name" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="状态" prop="username">
|
|
|
- <el-switch v-model="formData.delivery" />
|
|
|
+ <el-form-item label="APP ID" v-if="!props.primary" prop="repassword">
|
|
|
+ <el-input v-model="formData.repassword" clearable type="password" autocomplete="new-password" size="large"
|
|
|
+ placeholder="请输入APP ID" show-password class="h-12 text-base" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="APP 密钥" v-if="!props.primary" prop="repassword">
|
|
|
+ <el-input v-model="formData.repassword" clearable type="password" autocomplete="new-password" size="large"
|
|
|
+ placeholder="请输入APP 密钥" show-password class="h-12 text-base" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="状态" prop="status">
|
|
|
+ <el-switch v-model="formData.status" :active-value="1" :inactive-value="2" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="备注" prop="username">
|
|
|
- <el-input v-model="formData.username" placeholder="请填写备注" type="textarea" />
|
|
|
+ <el-form-item label="备注" prop="remark">
|
|
|
+ <el-input v-model="formData.remark" placeholder="请填写备注" type="textarea" />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="flex justify-end">
|
|
|
- <el-button type="primary" @click="submitForm(form)">{{ $t('system.confirm') }}</el-button>
|
|
|
+ <el-button type="primary" @click="submitForm(ruleForm)">{{ $t('system.confirm') }}</el-button>
|
|
|
</div>
|
|
|
</el-form>
|
|
|
</template>
|
|
@@ -40,16 +44,14 @@
|
|
|
import { useCreate } from '@/hook/curd/useCreate';
|
|
|
import { useShow } from '@/hook/curd/useShow';
|
|
|
import { cpManageCpList, cpOptions } from '@/api/cp/index'
|
|
|
+import { advertiserGetAdvertiser, advertiserAdd, advertiserUpdateAdvertiser } from '@/api/advertiser/index'
|
|
|
import type { FormInstance, FormRules } from 'element-plus'
|
|
|
const ruleForm = ref<FormInstance>()
|
|
|
-
|
|
|
import { onMounted, ref } from 'vue';
|
|
|
-import http from '@/support/http';
|
|
|
const props = defineProps({
|
|
|
primary: String | Number,
|
|
|
- api: String,
|
|
|
});
|
|
|
-
|
|
|
+const formData = ref({ status: 2, miniProgramIds: [] })
|
|
|
//自定义校验规则
|
|
|
const validatePasswordConfirmation = (
|
|
|
rule: any,
|
|
@@ -65,11 +67,11 @@ const validatePasswordConfirmation = (
|
|
|
}
|
|
|
};
|
|
|
const rules = reactive({
|
|
|
- applet: [{ required: true, message: '请选择小程序' }],
|
|
|
+ miniProgramIds: [{ required: true, message: '请选择小程序' }],
|
|
|
email: [
|
|
|
{
|
|
|
required: true,
|
|
|
- message: '请输入邮箱',
|
|
|
+ message: '请输入登录账号',
|
|
|
trigger: 'blur'
|
|
|
},
|
|
|
{
|
|
@@ -78,10 +80,17 @@ const rules = reactive({
|
|
|
trigger: 'blur'
|
|
|
}
|
|
|
],
|
|
|
- code: [
|
|
|
+ remark: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入备注',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ username: [
|
|
|
{
|
|
|
required: true,
|
|
|
- message: '请输入验证码',
|
|
|
+ message: '请输入用户名',
|
|
|
trigger: 'blur'
|
|
|
}
|
|
|
],
|
|
@@ -97,7 +106,7 @@ const rules = reactive({
|
|
|
'必须包含大小写字母和数字的组合,可以使用特殊字符,长度在6-20之间'
|
|
|
}
|
|
|
],
|
|
|
- password_confirmation: [
|
|
|
+ repassword: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: '请再次输入密码',
|
|
@@ -106,9 +115,7 @@ const rules = reactive({
|
|
|
{ validator: validatePasswordConfirmation, trigger: 'blur' }
|
|
|
]
|
|
|
});
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+const loading = ref(false)
|
|
|
|
|
|
const remoteMethod = (query: string) => {
|
|
|
if (query) {
|
|
@@ -134,24 +141,39 @@ const passwordRules = [
|
|
|
message: '必须包含大小写字母和数字的组合,可以使用特殊字符,长度在6-20之间'
|
|
|
}
|
|
|
];
|
|
|
-
|
|
|
-if (props.primary) {
|
|
|
- passwordRules.shift();
|
|
|
+const submitForm = (formEl: FormInstance | undefined) => {
|
|
|
+ console.log(formData.value, 'formData.valueformData.value');
|
|
|
+ if (!formEl) return;
|
|
|
+ formEl
|
|
|
+ .validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ let api;
|
|
|
+ if (props.primary) {
|
|
|
+ api = advertiserUpdateAdvertiser
|
|
|
+ } else {
|
|
|
+ api = advertiserAdd
|
|
|
+ }
|
|
|
+ api({ ...formData.value }).then(res => {
|
|
|
+ console.log(res);
|
|
|
+ ElMessage.success(res.message)
|
|
|
+ emit('close')
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ loading.value = false;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .then(() => { });
|
|
|
}
|
|
|
|
|
|
-const { formData, form, loading, submitForm, close } = useCreate(
|
|
|
- props.api,
|
|
|
- props.primary
|
|
|
-);
|
|
|
-
|
|
|
if (props.primary) {
|
|
|
- useShow(props.api, props.primary, formData);
|
|
|
+ advertiserGetAdvertiser({ id: props.primary }).then(res => {
|
|
|
+ console.log(res, 'props.primary');
|
|
|
+ formData.value = res.data
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
const emit = defineEmits(['close']);
|
|
|
-close(() => emit('close'));
|
|
|
const cpList = ref();
|
|
|
-
|
|
|
onMounted(() => {
|
|
|
initCpOtion({})
|
|
|
});
|