Commit 50365532 authored by 赵伟庚's avatar 赵伟庚

fix some bugs

parent 3feed9b4
......@@ -176,6 +176,10 @@ export default {
},
handleExceed(file, fileList) {
console.log(file, fileList);
if (fileList && fileList.length == this.limit) {
this.$message.error(`最多只允许上传${this.limit}个文件`)
return false
}
},
handlePreview(val) {
let a = document.createElement("a"); // 生成一个a元素
......
......@@ -103,6 +103,16 @@
<el-form-item label="名称" prop="name">
<el-input
v-model="formData.name"
show-word-limit
:maxlength="
nodeClassifyId == 'eb9c7d70-c123-42b7-8e61-dde1b022b669'
? 6
: nodeClassifyId == 'efd9ec3b-7f18-49e2-9d88-bcca022243bb'
? 4
: nodeClassifyId == '949a1138-4995-464e-97a9-424d097eb271'
? 2
: 20
"
placeholder="请输入名称"
></el-input>
</el-form-item>
......@@ -232,8 +242,7 @@ const state = reactive({
},
rules: {
name: [
{ required: true, message: "请输入名称", trigger: "blur" },
{ max: 20, message: "名称最大为20字", trigger: "blur"}
{ required: true, message: "请输入名称", trigger: "blur" }
],
describe: [
{ required: true, message: "请输入描述", trigger: "blur" },
......
......@@ -17,7 +17,7 @@
<el-input v-model="contactForm.contact_email"/>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input type="textarea" :rows="3" v-model="contactForm.remark" />
<el-input type="textarea" :rows="3" v-model="contactForm.remark" show-word-limit maxlength="300"/>
</el-form-item>
</el-form>
</template>
......@@ -61,7 +61,6 @@ const checkPhoneRepet = (rule, value, callback) => {
}else {
params = {id: 0,contact_phone: value}
}
$axios.post(`/apaas/system/v5/org/check`,params)
.then((res) => {
if (res.data.code == 200) {
......@@ -70,11 +69,22 @@ const checkPhoneRepet = (rule, value, callback) => {
callback(new Error(res.data.data))
}
})
}
const checkName = (rule, value, callback) => {
var reg = /^[a-zA-Z0-9\u4e00-\u9fa5]+$/
if (!reg.test(value)) {
callback(new Error("只能输入字母、数字和汉字"))
}else {
callback()
}
}
const contactFormRules = reactive({
contact_name: [
{ required: true, message: '请输入联系人姓名', trigger: 'blur' },
{ max: 50, message: "联系人姓名最大长度为50个字符", trigger: "blur"},
{ validator: checkName, trigger: 'blur' },
],
contact_phone: [
{ required: true, message: '请输入联系人手机号', trigger: 'blur' },
......@@ -83,6 +93,7 @@ const contactFormRules = reactive({
],
contact_email: [
{ type: 'email', message: '请输入正确的邮箱', trigger: 'blur' },
{ max: 100, message: "邮箱最大长度为100个字符", trigger: "blur"},
]
})
const contactRef = ref(null)
......
......@@ -191,7 +191,7 @@ const getDetail = () => {
systemFormRef.value.setForm({
organization_id: form.organization_id,
system_role_id: form.system_role_id,
logo: [{url:form.logo}],
logo: form.logo ? [{url:form.logo}] : [],
business_code: form.business_code,
business_name: form.business_name,
business_desc: form.business_desc,
......
......@@ -29,7 +29,7 @@
<bg-upload-image v-model="systemForm.logo" :showTips="true" :limit="1" :fileSize="500" :fileSizeUnit="'KB'" listType="picture-card" :accept="['.jpg','.jpeg','.png']" customTips="请选择图片上传:大小120 * 120像素支持jpg、png等格式,图片需小于500KB"></bg-upload-image>
</el-form-item>
<el-form-item label="业务系统概述" prop="business_desc">
<el-input type="textarea" :rows="3" v-model="systemForm.business_desc" />
<el-input type="textarea" :rows="3" v-model="systemForm.business_desc" show-word-limit maxlength="300" />
</el-form-item>
<el-form-item label="角色" prop="system_role_id" v-if="!formType">
<el-select v-model="systemForm.system_role_id" placeholder="请选择角色" :disabled="true" style="width: 100%">
......@@ -118,6 +118,10 @@ const validatePass = (rule, value, callback) => {
}
}
const validateBusinessName = (rule, value, callback) => {
let reg = /^[a-zA-Z0-9\u4e00-\u9fa5]+$/
if (!reg.test(value)) {
callback(new Error("只能输入字母、数字和汉字"))
}else {
let params = null;
if (props.id){
params = {id: parseInt(props.id),business_name: value,organization_id: systemForm.organization_id}
......@@ -133,9 +137,14 @@ const validateBusinessName = (rule, value, callback) => {
callback(new Error(res.data.data))
}
})
}
}
const validateSystemAccount = (rule, value, callback) => {
let reg = /^[a-zA-Z0-9]+$/
if (!reg.test(value)) {
callback(new Error("只能输入字母和数字"))
}else {
let params = null;
if (props.id){
params = {id: parseInt(props.id),system_account: value,}
......@@ -151,6 +160,7 @@ const validateSystemAccount = (rule, value, callback) => {
callback(new Error(res.data.data))
}
})
}
}
const formRules = reactive({
......@@ -159,6 +169,7 @@ const formRules = reactive({
],
business_name: [
{ required: true, message: '请输入业务系统名称', trigger: 'blur' },
{ max: 50, message: '业务系统名称最大长度为50个字符', trigger: 'blur' },
{ validator: validateBusinessName, trigger: 'blur' },
],
system_role_id: [
......@@ -166,16 +177,24 @@ const formRules = reactive({
],
system_account: [
{ required: true, message: '请输入账号', trigger: 'blur' },
{ min: 4,message: '帐号长度不得低于4个字符',trigger: 'blur' },
{ max: 20,message: '帐号最大长度为20个字符',trigger: 'blur' },
{ validator: validateSystemAccount, trigger: 'blur' },
],
password: [
{ required: true, message: '请输入密码', trigger: 'blur' },
{min: 8,message: '密码长度不得低于8位',trigger: 'blur'}
{ min: 8,message: '密码长度不得低于8位',trigger: 'blur' }
],
confirm_password: [
{ required: true, message: '请确认密码', trigger: 'blur' },
{ validator: validatePass, trigger: 'blur' }
],
access_address: [
{ max: 500,message: '访问地址最大长度为500个字符',trigger: 'blur' },
],
develop_id: [
{ required: true, message: "请选择开发厂商", trigger: "change"}
]
})
const systemRef = ref(null)
......@@ -260,10 +279,9 @@ const getFirmList = () => {
$axios.get(`/apaas/system/v5/dictionary/developer/list`)
.then((res) => {
if (res.data.code == 200) {
firmList.value = res.data.data;
firmList.value = res.data.data || [];
}else {
$message.error(res.data.data)
}
})
}
......
......@@ -26,7 +26,7 @@
<el-input v-model="orgForm.organization_code" />
</el-form-item>
<el-form-item label="组织介绍" prop="description">
<el-input type="textarea" :rows="3" v-model="orgForm.description" />
<el-input type="textarea" :rows="3" v-model="orgForm.description" maxlength="300" show-word-limit />
</el-form-item>
<el-form-item label="组织附件" prop="logo">
<bg-upload
......@@ -44,39 +44,61 @@
<script setup>
import { reactive, ref, onMounted, onBeforeMount, getCurrentInstance } from 'vue'
const props = defineProps({
const props = defineProps({
formType: {
type: String,
default: 'create', //false 新建 true 编辑
},
});
const { proxy } = getCurrentInstance()
const { $axios,$message } = proxy
const orgForm = reactive({
});
const { proxy } = getCurrentInstance()
const { $axios,$message } = proxy
const orgForm = reactive({
p_organization_id: '',
level: false,
name: '',
organization_code: '',
description: '',
attachment: []
})
})
const checkCode = (rule, value, callback) => {
var reg = /^[a-zA-Z0-9]+$/
if (!reg.test(value)) {
callback(new Error("只能输入字母和数字"))
}else {
callback()
}
}
const checkName = (rule, value, callback) => {
var reg = /^[a-zA-Z\u4e00-\u9fa5]+$/
if (!reg.test(value)) {
callback(new Error("只能输入字母和汉字"))
}else {
callback()
}
}
const formRules = reactive({
const formRules = reactive({
p_organization_id: [
{ required: true, message: '输入上级目录', trigger: 'blur' },
],
name: [
{ required: true, message: '请输入机构名称', trigger: 'blur' },
{ max: 50, message: '机构名称最大长度为50位', trigger: 'blur' },
{ validator: checkName, trigger: 'blur' }
],
organization_code: [
{ required: true, message: '请输入组织机构代码', trigger: 'blur' },
{ max: 18, message: '组织机构代码最大长度为18位', trigger: 'blur' },
{ validator: checkCode, trigger: 'blur' }
],
})
})
const orgRef = ref(null)
const emit = defineEmits(['action'])
const orgRef = ref(null)
const emit = defineEmits(['action'])
const submitForm = async () => {
const submitForm = async () => {
if (!orgRef) return
await orgRef.value.validate((valid, fields) => {
if (valid) {
......@@ -85,43 +107,39 @@ import { reactive, ref, onMounted, onBeforeMount, getCurrentInstance } from 'vue
emit('action',null)
}
})
}
}
const clearForm = () => {
const clearForm = () => {
if (!orgRef) return
orgRef.value.resetFields()
}
const setForm = (data) => {
}
const setForm = (data) => {
Object.assign(orgForm, data);
}
const orgData = ref([])
const treeProps = {
}
const orgData = ref([])
const treeProps = {
label: 'name',
children: 'Child',
value: 'organization_id',
disabled: 'disabled'
}
const getOrgTree = () => {
}
const getOrgTree = () => {
$axios.get(`/apaas/system/v5/org/tree`)
.then((res) => {
if (res.data.code == 200) {
const orgDataTemp = res.data.data || []
orgDataTemp.shift()
orgData.value = filterOrg(orgDataTemp);
}else {
$message.error(res.data.data)
}
})
}
}
const filterOrg = (data) => {
const filterOrg = (data) => {
if(data.length > 0) {
data.forEach(item => {
item.disabled = item.data_type === 0 ? false : true;
if(item.Child){
filterOrg(item.Child)
}else {
......@@ -130,19 +148,15 @@ import { reactive, ref, onMounted, onBeforeMount, getCurrentInstance } from 'vue
})
}
return data;
}
}
const isTop = (data) => {
const isTop = (data) => {
orgForm.p_organization_id = data ? ' ' : ''; //空格绕过表单非空校验
}
onBeforeMount(() => {
}
onBeforeMount(() => {
getOrgTree()
})
onMounted(() => {
})
})
onMounted(() => {})
defineExpose({ submitForm, clearForm, setForm })
</script>
\ No newline at end of file
......@@ -4,7 +4,7 @@
<el-breadcrumb separator="/">
<el-breadcrumb-item> 组织管理 </el-breadcrumb-item>
<el-breadcrumb-item :to="{ path: '/system/organization' }"> 组织管理 </el-breadcrumb-item>
<el-breadcrumb-item> 新增组织管理员 </el-breadcrumb-item>
<el-breadcrumb-item> {{route.query.id ? '编辑组织用户':'新增组织管理员'}} </el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="page_content flex_cloumn">
......@@ -192,7 +192,7 @@ const getDetail = () => {
orgAccountRef.value.setForm({
organization_id: form.organization_id,
select_role: form.select_role,
logo: [{url:form.logo}],
logo: form.logo ? [{url:form.logo}] : [],
system_account: form.system_account,
contact_phone: form.contact_phone,
state: form.state,
......
......@@ -4,7 +4,7 @@
<el-breadcrumb separator="/">
<el-breadcrumb-item> 组织管理 </el-breadcrumb-item>
<el-breadcrumb-item :to="{ path: '/system/organization' }"> 组织管理 </el-breadcrumb-item>
<el-breadcrumb-item> 新增平台用户 </el-breadcrumb-item>
<el-breadcrumb-item> {{route.query.id ? '编辑平台用户':'新增平台用户'}} </el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="page_content flex_cloumn">
......@@ -217,7 +217,7 @@ const getDetail = () => {
if (res.data.code == 200) {
const form = res.data.data;
platformAccountFormRef.value.setForm({
logo: [{url:form.logo}],
logo: form.logo ? [{url:form.logo}] : [],
system_account: form.system_account,
contact_phone: form.contact_phone,
state: form.state,
......
......@@ -52,8 +52,7 @@ const { proxy } = getCurrentInstance()
const { $axios,$message } = proxy
const route = useRoute();
const accountInfo = reactive(
[
const accountInfo = reactive([
{
name: "手机号",
value: "",
......@@ -94,11 +93,10 @@ const accountInfo = reactive(
value: "",
nameWidth: 130
},
]
)
])
const personInfo = reactive(
[{
const personInfo = reactive([
{
name: "姓名",
value: "",
nameWidth: 130
......@@ -125,10 +123,10 @@ const accountInfo = reactive(
full: true,
nameWidth: 130
},
])
])
const personInfo2 = reactive(
[{
const personInfo2 = reactive([
{
name: "姓名",
value: "",
nameWidth: 130
......@@ -144,12 +142,11 @@ const accountInfo = reactive(
full: true,
nameWidth: 130
},
])
const logo = ref('')
const accountType = ref(2); //1.业务系统账号 2.组织管理员账号 3.平台用户账号
])
const getDetail = () => {
const logo = ref('')
const accountType = ref(2); //1.业务系统账号 2.组织管理员账号 3.平台用户账号
const getDetail = () => {
$axios.get(`/apaas/system/v5/org/user/${route.query.id}`)
.then((res) => {
if (res.data.code == 200) {
......@@ -161,32 +158,28 @@ const accountInfo = reactive(
accountInfo[4].value = detail.created_by;
accountInfo[5].value = detail.created_by_account;
accountInfo[6].value = detail.updated_time;
accountInfo[7].value = detail.created_time;
accountInfo[7].value = detail.created_t
personInfo[0].value = detail.contact_name;
personInfo[1].value = detail.contact_email;
personInfo[2].value = detail.document_type === 1 ? '身份证' : '';
personInfo[3].value = detail.document_number;
personInfo[4].value = detail.remark;
personInfo[4].value = detail.rem
personInfo2[0].value = detail.contact_name;
personInfo2[1].value = detail.contact_email;
personInfo2[2].value = detail.remark;
personInfo2[2].value = detail.rem
logo.value = detail.logo;
accountType.value = detail.is_admin;
accountType.value = detail.is_ad
}else {
$message.error(res.data.data)
}
})
}
}
onBeforeMount(() => {
onBeforeMount(() => {
if(route.query.id) {
getDetail()
}
})
})
</script>
<style scoped>
......
......@@ -146,7 +146,7 @@
</template>
</el-cascader>
<el-input
v-model="userFilter.search"
v-model.trim="userFilter.search"
placeholder="请输入内容"
style="width: 200px"
:prefix-icon="Search"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment