bug修复

This commit is contained in:
THK3121 2023-07-18 09:02:53 +08:00
parent 338a313da1
commit 7a3a12285b
4 changed files with 100 additions and 96 deletions

View File

@ -424,8 +424,10 @@
</el-row> </el-row>
</el-col> </el-col>
<el-col :span="24" class="el-card pt-6"> <el-col :span="24" class="el-card pt-6">
<el-form-item label="" prop="field139"> <el-form-item label="" prop="field139">
<el-button type="primary" :disabled="isDisabled" size="medium" @click="create"> 创建 </el-button> <el-button v-if="isEdit" type="primary" size="medium" @click="create"> 修改 </el-button>
<el-button v-else type="primary" :disabled="isDisabled" size="medium" @click="create"> 创建 </el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
@ -450,7 +452,7 @@ const { removeTab } = useMultipleTabs()
const router = useRouter() const router = useRouter()
const route = useRoute() const route = useRoute()
let isDisabled=ref(false) let isDisabled=ref(false)
let isEdit=ref(false)
defineProps({ defineProps({
dictData: { dictData: {
type: Object as PropType<Record<string, any[]>>, type: Object as PropType<Record<string, any[]>>,
@ -461,9 +463,8 @@ const emit = defineEmits(['success', 'close'])
const formRef = shallowRef<FormInstance>() const formRef = shallowRef<FormInstance>()
const popupRef = shallowRef<InstanceType<typeof Popup>>() const popupRef = shallowRef<InstanceType<typeof Popup>>()
const mode = ref() const mode = ref()
if(route.query.read){ isDisabled=route.query.read
isDisabled=true isEdit=route.query.edit
}
// //
// const popupTitle = computed(() => { // const popupTitle = computed(() => {
// return mode.value == 'edit' ? '' : '' // return mode.value == 'edit' ? '' : ''
@ -747,18 +748,10 @@ defineExpose({
getDetail getDetail
}) })
</script> </script>
<style scoped>
.avatar-uploader .avatar {
width: 178px;
height: 178px;
display: block;
}
</style>
<style> <style>
.avatar-uploader .el-upload { .avatar-uploader .el-upload {
width: 170px; width: 10vw;
height: 108px; height: 6.3vw;
background-color: #fff; background-color: #fff;
border: 1px dashed var(--el-border-color); border: 1px dashed var(--el-border-color);
border-radius: 6px; border-radius: 6px;

View File

@ -139,7 +139,9 @@
:to="{ :to="{
path: getRoutePath('company/add:edit'), path: getRoutePath('company/add:edit'),
query: { query: {
id: row.id id: row.id,
edit:true
} }
}" }"
> >

View File

@ -187,7 +187,7 @@
:data="{ cid: 1 }" :data="{ cid: 1 }"
action="https://worker-task.lihaink.cn/api/upload/image" action="https://worker-task.lihaink.cn/api/upload/image"
:show-file-list="false" :show-file-list="false"
:on-success="handleAvatarSuccess" :on-success="handleAvatarSuccessIdA"
:before-upload="beforeAvatarUpload" :before-upload="beforeAvatarUpload"
> >
<img <img
@ -205,7 +205,7 @@
:data="{ cid: 1 }" :data="{ cid: 1 }"
action="https://worker-task.lihaink.cn/api/upload/image" action="https://worker-task.lihaink.cn/api/upload/image"
:show-file-list="false" :show-file-list="false"
:on-success="handleAvatarSuccessB" :on-success="handleAvatarSuccessIdB"
:before-upload="beforeAvatarUpload" :before-upload="beforeAvatarUpload"
> >
<img <img
@ -227,8 +227,7 @@
:data="{ cid: 1 }" :data="{ cid: 1 }"
action="https://worker-task.lihaink.cn/api/upload/image" action="https://worker-task.lihaink.cn/api/upload/image"
:show-file-list="false" :show-file-list="false"
:on-success="handleAvatarSuccess_two" :on-success="handleAvatarSuccessCarA"
:before-upload="beforeAvatarUpload_two"
> >
<img <img
v-if="formData.qualification.car_card" v-if="formData.qualification.car_card"
@ -240,17 +239,17 @@
</el-icon> </el-icon>
</el-upload> </el-upload>
<el-upload <el-upload
v-model="formData.qualification.car_cardb" v-model="formData.qualification.car_card_b"
class="avatar-uploader" class="avatar-uploader"
:data="{ cid: 1 }" :data="{ cid: 1 }"
action="https://worker-task.lihaink.cn/api/upload/image" action="https://worker-task.lihaink.cn/api/upload/image"
:show-file-list="false" :show-file-list="false"
:on-success="handleAvatarSuccess_twoB" :on-success="handleAvatarSuccessCarB"
:before-upload="beforeAvatarUpload_two" :before-upload="beforeAvatarUpload_two"
> >
<img <img
v-if="formData.qualification.car_cardb" v-if="formData.qualification.car_card_b"
:src="formData.qualification.car_cardb" :src="formData.qualification.car_card_b"
class="avatar" class="avatar"
/> />
<el-icon v-else class="avatar-uploader-icon"> <el-icon v-else class="avatar-uploader-icon">
@ -267,7 +266,7 @@
:data="{ cid: 1 }" :data="{ cid: 1 }"
action="https://worker-task.lihaink.cn/api/upload/image" action="https://worker-task.lihaink.cn/api/upload/image"
:show-file-list="false" :show-file-list="false"
:on-success="handleAvatarSuccess_three" :on-success="handleAvatarSuccessBankA"
:before-upload="beforeAvatarUpload_three" :before-upload="beforeAvatarUpload_three"
> >
<img <img
@ -280,17 +279,17 @@
</el-icon> </el-icon>
</el-upload> </el-upload>
<el-upload <el-upload
v-model="formData.qualification.car_card_b" v-model="formData.qualification.bank_account_b"
class="avatar-uploader" class="avatar-uploader"
:data="{ cid: 1 }" :data="{ cid: 1 }"
action="https://worker-task.lihaink.cn/api/upload/image" action="https://worker-task.lihaink.cn/api/upload/image"
:show-file-list="false" :show-file-list="false"
:on-success="handleAvatarSuccess_threeB" :on-success="handleAvatarSuccessBankB"
:before-upload="beforeAvatarUpload_three" :before-upload="beforeAvatarUpload_three"
> >
<img <img
v-if="formData.qualification.car_card_b" v-if="formData.qualification.bank_account_b"
:src="formData.qualification.car_card_b" :src="formData.qualification.bank_account_b"
class="avatar" class="avatar"
/> />
<el-icon v-else class="avatar-uploader-icon"> <el-icon v-else class="avatar-uploader-icon">
@ -373,14 +372,13 @@
v-model="formData.contract" v-model="formData.contract"
placeholder="请选择合同" placeholder="请选择合同"
clearable clearable
@change="street_change"
:style="{ width: '100%' }" :style="{ width: '100%' }"
> >
<el-option <el-option
v-for="(item, index) in datas.contract" v-for="(item, index) in datas.contract"
:key="index" :key="index"
:label="item.street_name" :label="item.name"
:value="item.street_code" :value="item.id"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -511,13 +509,11 @@ const formData = reactive({
is_contract: 0, is_contract: 0,
role_id: '', role_id: '',
avatar: '', avatar: '',
password: '',
password_confirm: '',
disable: 0,
multipoint_login: 1, multipoint_login: 1,
root: 0 root: 0
}) })
const datas = reactive({ //
const datas:any = reactive({
provinceOptions: [], provinceOptions: [],
cityOptions: [], cityOptions: [],
areaOptions: [], areaOptions: [],
@ -532,20 +528,36 @@ const getcontract_type = async () => {
} }
// //
const getcontract=async ()=>{ const getcontract=async ()=>{
const data=await dictDataLists({ type_id: formData.contract_type }) const data=await dictDataLists({ type_id: 9 })
// console.log(data) datas['contract'] = data['lists']
// console.log(formData.contract_type)
} }
// const passwordConfirmValidator = (rule: object, value: string, callback: any) => {
// if (formData.password) {
// if (!value) callback(new Error(''))
// if (value !== formData.password) callback(new Error('!'))
// }
// callback()
// }
getcontract_type() getcontract_type()
getcontract() getcontract()
//
const ValidatorPhone = (rule: object, value: string, callback: any) => {
let rg= /^(?:(?:\+|00)86)?1[3-9]\d{9}$/
rg.test(formData.phone)?callback():callback(new Error('请输入正确的手机号'))
}
//
const ValidatorId = (rule: object, value: string, callback: any) => {
let rg= /^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$/
rg.test(formData.id_card)?callback():callback(new Error('请输入正确的身份证号码'))
}
const Validatorcard = (rule: object, value: string, callback: any) => {
formData.qualification.car_card?callback():callback(new Error('请输入驾驶证正面'))
}
const ValidatorcardB = (rule: object, value: string, callback: any) => {
formData.qualification.car_card_b?callback():callback(new Error('请输入驾驶证反面'))
}
const ValidatorBankcard = (rule: object, value: string, callback: any) => {
formData.qualification.bank_account?callback():callback(new Error('请输入银行卡正面'))
}
const ValidatorBankcardB = (rule: object, value: string, callback: any) => {
formData.qualification.bank_account_b?callback():callback(new Error('请输入银行卡反面'))
}
const formRules = reactive({ const formRules = reactive({
account: [ account: [
{ {
@ -557,16 +569,17 @@ const formRules = reactive({
id_card:[ id_card:[
{ {
required: true, required: true,
message: '请输入身份证账号', trigger: ['blur'],
trigger: ['blur'] validator:ValidatorId
} }
], ],
phone:[ phone:[
{ {
required: true, required: true,
message: '请输入电话号码', trigger: ['blur'],
trigger: ['blur'] validator:ValidatorPhone
} }
], ],
@ -585,6 +598,33 @@ const formRules = reactive({
trigger: ['blur'] trigger: ['blur']
} }
], ],
car_card:[
{
required: true,
trigger: ['change'],
validator:Validatorcard
}
],
car_card_b:[
{
required: true,
trigger: ['blur'],
validator:ValidatorcardB
}
],
bank_account:[
{
required: true,
trigger: ['change'],
validator:ValidatorBankcard
}
],bank_account_b:[
{
required: true,
trigger: ['change'],
validator:ValidatorBankcardB
}
],
role_id: [ role_id: [
{ {
@ -592,25 +632,7 @@ const formRules = reactive({
message: '请选择角色', message: '请选择角色',
trigger: ['blur'] trigger: ['blur']
} }
], ]
password: [
{
required: true,
message: '请输入密码',
trigger: ['blur']
}
] as any[],
password_confirm: [
{
required: true,
message: '请输入确认密码',
trigger: ['blur']
},
// {
// validator: passwordConfirmValidator,
// trigger: 'blur'
// }
] as any[]
}) })
@ -635,9 +657,8 @@ const { optionsData } = useDictOptions<{
const handleSubmit = async () => { const handleSubmit = async () => {
await formRef.value?.validate() await formRef.value?.validate()
console.log(formData)
return return
mode.value == 'edit' ? await adminEdit(formData) : await adminAdd(formData) mode.value == 'edit' ? await adminEdit(formData) : await adminAdd(formData).then(res=>console.log(res))
popupRef.value?.close() popupRef.value?.close()
emit('success') emit('success')
} }
@ -646,30 +667,27 @@ const open = (type = 'add') => {
mode.value = type mode.value = type
popupRef.value?.open() popupRef.value?.open()
} }
// url
const handleAvatarSuccess: UploadProps['onSuccess'] = (response, uploadFile) => { const handleAvatarSuccessIdA: UploadProps['onSuccess'] = (response, uploadFile) => {
formData.qualification.id_card = response.data.uri formData.qualification.id_card = response.data.uri
} }
const handleAvatarSuccessB: UploadProps['onSuccess'] = (response, uploadFile) => { const handleAvatarSuccessIdB: UploadProps['onSuccess'] = (response, uploadFile) => {
formData.qualification.id_card_b = response.data.uri formData.qualification.id_card_b = response.data.uri
} }
const beforeAvatarUpload: UploadProps['beforeUpload'] = (rawFile) => { const handleAvatarSuccessCarA: UploadProps['onSuccess'] = (response, uploadFile) => {
return true
}
const handleAvatarSuccess_two: UploadProps['onSuccess'] = (response, uploadFile) => {
formData.qualification.car_card = response.data.uri formData.qualification.car_card = response.data.uri
} }
const handleAvatarSuccess_twoB: UploadProps['onSuccess'] = (response, uploadFile) => { const handleAvatarSuccessCarB: UploadProps['onSuccess'] = (response, uploadFile) => {
formData.qualification.car_card_b = response.data.uri formData.qualification.car_card_b = response.data.uri
} }
const beforeAvatarUpload_two: UploadProps['beforeUpload'] = (rawFile) => { const beforeAvatarUpload_two: UploadProps['beforeUpload'] = (rawFile) => {
return true return true
} }
const handleAvatarSuccess_three: UploadProps['onSuccess'] = (response, uploadFile) => { const handleAvatarSuccessBankA: UploadProps['onSuccess'] = (response, uploadFile) => {
formData.qualification.bank_account = response.data.uri formData.qualification.bank_account = response.data.uri
} }
const handleAvatarSuccess_threeB: UploadProps['onSuccess'] = (response, uploadFile) => { const handleAvatarSuccessBankB: UploadProps['onSuccess'] = (response, uploadFile) => {
formData.qualification.car_card_b = response.data.uri formData.qualification.bank_account_b = response.data.uri
} }
const handleAvatarSuccess_four: UploadProps['onSuccess'] = (response, uploadFile) => { const handleAvatarSuccess_four: UploadProps['onSuccess'] = (response, uploadFile) => {
formData.file = response.data.uri formData.file = response.data.uri
@ -715,7 +733,7 @@ const setFormData = async (row: any) => {
const data = await adminDetail({ const data = await adminDetail({
id: row.id id: row.id
}) })
console.log(row)
for (const key in formData) { for (const key in formData) {
if (data[key] != null && data[key] != undefined) { if (data[key] != null && data[key] != undefined) {
//@ts-ignore //@ts-ignore
@ -734,19 +752,11 @@ defineExpose({
setFormData setFormData
}) })
</script> </script>
<style scoped>
.avatar-uploader .avatar {
width: 178px;
height: 178px;
display: block;
}
</style>
<style> <style>
.avatar-uploader .el-upload { .avatar-uploader .el-upload {
width: 170px; width: 10vw;
height: 108px; height: 6.3vw;
background-color: #fff; background-color: #fff;
border: 1px dashed var(--el-border-color); border: 1px dashed var(--el-border-color);
border-radius: 6px; border-radius: 6px;

View File

@ -154,7 +154,6 @@ const handleAdd = async () => {
} }
const handleEdit = async (data: any) => { const handleEdit = async (data: any) => {
showEdit.value = true showEdit.value = true
await nextTick() await nextTick()
editRef.value?.open('edit') editRef.value?.open('edit')