dev
yujialong 3 years ago
parent 5f306c9ffd
commit e77d966beb
  1. 7
      src/views/Login.vue
  2. 95
      src/views/data/Product.vue
  3. 457
      src/views/user/AddUser.vue

@ -119,12 +119,13 @@ export default {
// //
param: { param: {
account: 'admin', account: '',
password: '111aaa', password: '',
code:'', code:'',
platform:3, platform:3,
random:'', random:'',
distinguish:1 distinguish:1,
type: 2
}, },
rules: { rules: {
account: [{ required: true, message: '请输入账号', trigger: 'blur' }], account: [{ required: true, message: '请输入账号', trigger: 'blur' }],

@ -83,7 +83,7 @@
<el-form-item label="已选数据"> <el-form-item label="已选数据">
<el-button type="primary" @click="configData">配置数据权限</el-button> <el-button type="primary" @click="configData">配置数据权限</el-button>
<div class="type-wrap" ref="typeWrap" @scroll="loadType"> <div class="type-wrap" ref="typeWrap" @scroll="loadType">
<el-tree ref="type" :data="typeList" accordion node-key="id" :props="defaultProps" @node-expand="typeExpand"> <el-tree ref="type" :data="typeList" show-checkbox accordion node-key="id" :default-expanded-keys="checkedIds" :default-checked-keys="checkedIds" :props="defaultProps" @node-expand="typeExpand">
<span class="custom-tree-node" slot-scope="{ node, data }"> <span class="custom-tree-node" slot-scope="{ node, data }">
<span :title="node.label">{{ node.label }}</span> <span :title="node.label">{{ node.label }}</span>
</span> </span>
@ -93,7 +93,7 @@
</el-form> </el-form>
<span slot="footer" class="dialog-footer" v-if="!isDetail"> <span slot="footer" class="dialog-footer" v-if="!isDetail">
<el-button @click="productVisible = false"> </el-button> <el-button @click="productVisible = false"> </el-button>
<el-button type="primary" :loading="loading" @click="confirm"> </el-button> <el-button type="primary" :loading="submited" @click="confirm"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
@ -211,7 +211,7 @@ export default {
previewVisible: false, previewVisible: false,
previewHead: [], previewHead: [],
previewData: [], previewData: [],
loading: false submited: false,
}; };
}, },
watch: { watch: {
@ -307,6 +307,7 @@ export default {
getTable(res) getTable(res)
setTimeout(() => { setTimeout(() => {
console.log(11, res)
this.typeList = res this.typeList = res
},500) },500)
this.importVisible = true this.importVisible = true
@ -376,17 +377,20 @@ export default {
}, },
getDetail(){ getDetail(){
this.$post(`${this.api.findById}?id=${this.id}`).then(res => { this.$post(`${this.api.findById}?id=${this.id}`).then(res => {
this.productVisible = true
let data = res.product let data = res.product
this.productName = data.productName this.productName = data.productName
this.market = data.market this.market = data.market
this.checkedIds = this.handleType(data.tableId.split(','),this.typeList)
this.$refs.type.setCheckedNodes(this.checkedIds)
}).catch(res => {}) }).catch(res => {})
}, },
add(){ add(){
this.productVisible = true this.getType()
this.id = '' this.id = ''
this.checkedIds = []
}, },
edit(row){ edit(row){
this.getType()
this.id = row.id this.id = row.id
this.userId = row.userId this.userId = row.userId
this.getDetail() this.getDetail()
@ -410,7 +414,7 @@ export default {
}, },
preview(row){ preview(row){
this.isDetail = true this.isDetail = true
// this.getType() this.getType()
this.id = row.id this.id = row.id
this.getDetail() this.getDetail()
}, },
@ -455,34 +459,46 @@ export default {
this.typeIndex = 100000 this.typeIndex = 100000
this.typeList = [] this.typeList = []
this.tableId = [] this.tableId = []
this.configIds = []
}, },
// tableId, // tableId,
getIds(){ getIds(){
// //
let list = this.configIds let list = this.$refs.type.getCheckedNodes()
let len = list.length
return new Promise((resolve,reject) => { return new Promise((resolve,reject) => {
let getLen = 0
list.map(n => {
// tableLen
if(n.tableLen && n.tableLen > n.children.length) getLen++
})
list.map((n,i) => { list.map((n,i) => {
this.$post(`${this.api.getIdQueryTable}?categoryId=${n}&showName=&pageNum=1&pageSize=10000&updateTime=`).then(res => { if(n.tableLen && n.tableLen > n.children.length){
res.pageList.records.map(n => { // pageSize10000,,
this.tableId.push(String(n.id)) this.$post(`${this.api.getIdQueryTable}?categoryId=${n.originId}&showName=&pageNum=1&pageSize=10000&updateTime=`).then(res => {
}) let tableList = res.pageList.records
// 1,-1 tableList.map(n => {
len-- this.tableId.push(String(n.id))
// 0,resolve })
if(!len) resolve() // 1,-1
}).catch(res => {}) getLen--
// 0,resolve
if(!getLen) resolve()
}).catch(res => {})
}else if(n.name && !this.tableId.includes(n.id)){ // ,,
this.tableId.push(n.id)
if(!getLen) resolve()
}
}) })
}) })
}, },
confirm(){ confirm(){
if(this.loading) return false if(this.submited) return false
if(!this.productName) return this.$message.warning('请输入数据产品名称') if(!this.productName) return this.$message.warning('请输入数据产品名称')
if(!this.market) return this.$message.warning('请输入市场价格') if(!this.market) return this.$message.warning('请输入市场价格')
if(isNaN(this.market)) return this.$message.warning('市场价格请输入数字') if(isNaN(this.market)) return this.$message.warning('市场价格请输入数字')
if(!this.configIds.length) return this.$message.warning('请选择数据') if(!this.$refs.type.getCheckedNodes().length) return this.$message.warning('请选择数据')
this.loading = true
this.submited = true
this.getIds().then(() => { this.getIds().then(() => {
let tableId = Array.from(new Set(this.tableId)) let tableId = Array.from(new Set(this.tableId))
if(!tableId.length) return this.$message.warning('请选择数据') if(!tableId.length) return this.$message.warning('请选择数据')
@ -499,24 +515,23 @@ export default {
tableNum: tableId.length, tableNum: tableId.length,
updateTime: '', updateTime: '',
} }
this.$refs.typeConfig.setCheckedNodes([])
if(this.id){ if(this.id){
this.$post(this.api.updateProduct,data).then(res => { this.$post(this.api.updateProduct,data).then(res => {
this.$message.success('新增成功') this.$message.success('新增成功')
this.productVisible = false this.productVisible = false
this.getData() this.getData()
this.loading = false this.submited = false
}).catch(res => { }).catch(res => {
this.loading = false this.submited = false
}) })
}else{ }else{
this.$post(this.api.saveProduct,data).then(res => { this.$post(this.api.saveProduct,data).then(res => {
this.$message.success('新增成功') this.$message.success('新增成功')
this.productVisible = false this.productVisible = false
this.getData() this.getData()
this.loading = false this.submited = false
}).catch(res => { }).catch(res => {
this.loading = false this.submited = false
}) })
} }
}) })
@ -525,6 +540,13 @@ export default {
configData(){ configData(){
this.configVisible = true this.configVisible = true
this.getConfigType() this.getConfigType()
let list = this.$refs.type.getCheckedNodes()
let configIds = []
list.map(n => {
if(!n.name) configIds.push(n.originId)
})
this.configIds = configIds
}, },
typeConfigClick(data,node){ typeConfigClick(data,node){
this.categoryId = data.id this.categoryId = data.id
@ -610,24 +632,11 @@ export default {
}) })
}, },
confirmConfig(){ confirmConfig(){
this.configIds = this.$refs.typeConfig.getCheckedKeys() this.configChecked = this.$refs.typeConfig.getCheckedKeys().map(n => Number(n))
const list = this.$refs.typeConfig.getCheckedNodes() this.getTableId(this.typeList)
function uniqData(e, i) { this.checkedIds = Array.from(new Set(this.configCheckedTableId))
e.children.map(n => {
const index = list.findIndex(e => e.id === n.id)
if (index) {
list.splice(index, 1)
}
if (n.children && n.children.length) {
uniqData(n, i)
}
})
}
list.map((e, i) => {
uniqData(e, i)
})
this.typeList = list
this.configVisible = false this.configVisible = false
this.$refs.type.setCheckedNodes(this.checkedIds)
} }
} }
}; };

@ -12,188 +12,196 @@
</div> </div>
</el-card> </el-card>
<!-- 用户信息 --> <!-- 个人信息 -->
<el-card shadow="hover" class="mgb20"> <el-card shadow="hover" class="mgb20">
<div> <div>
<div class="flex-between mgb20 user_header"> <div class="flex-between mgb20 user_header">
<div class="flex-center mgb20 user_header"> <div class="flex-center">
<p class="addhr_tag"></p> <p class="addhr_tag"></p>
<span>用户信息</span> <span>个人信息</span>
</div> </div>
</div> </div>
<div> <div>
<div> <el-form
<p class="font_same">个人信息</p> ref="form"
<el-form :model="form"
ref="form" :rules="rules"
:model="form" label-width="120px"
:rules="rules" :disabled="isDetail"
label-width="120px" >
:disabled="isDetail" <el-col :span="6" :offset="5">
> <el-form-item prop="userName" label="用户姓名">
<el-col :span="6" :offset="5"> <el-input v-model="form.userName" placeholder="请输入"></el-input>
<el-form-item prop="userName" label="用户姓名"> </el-form-item>
<el-input v-model="form.userName" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="证件类型" prop="documentType"> <el-form-item label="证件类型" prop="documentType">
<el-select <el-select
v-model="form.documentType" v-model="form.documentType"
clearable clearable
placeholder="请选择证件类型" placeholder="请选择证件类型"
> >
<el-option <el-option
v-for="(item,index) in documentTypeList" v-for="(item,index) in documentTypeList"
:key="index" :key="index"
:label="item.name" :label="item.name"
:value="item.value" :value="item.value"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="国家"> <el-form-item label="国家">
<el-select <el-select
v-model="form.countries" v-model="form.countries"
clearable clearable
placeholder="请选择国家" placeholder="请选择国家"
> >
<el-option <el-option
v-for="(item,index) in countryList" v-for="(item,index) in countryList"
:key="index" :key="index"
:label="item.name" :label="item.name"
:value="item.value" :value="item.value"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="城市"> <el-form-item label="城市">
<el-select <el-select
v-model="form.cityId" v-model="form.cityId"
clearable clearable
placeholder="请选择城市" placeholder="请选择城市"
:disabled="form.provinceId ? false : true" :disabled="form.provinceId ? false : true"
> >
<el-option <el-option
v-for="(item,index) in cityList" v-for="(item,index) in cityList"
:key="index" :key="index"
:label="item.cityName" :label="item.cityName"
:value="item.cityId" :value="item.cityId"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="教育程度"> <el-form-item label="教育程度">
<el-select <el-select
v-model="form.educationDegree" v-model="form.educationDegree"
clearable clearable
placeholder="请选择教育程度" placeholder="请选择教育程度"
> >
<el-option <el-option
v-for="(item,index) in educationDegreeList" v-for="(item,index) in educationDegreeList"
:key="index" :key="index"
:label="item.name" :label="item.name"
:value="item.value" :value="item.value"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="schoolId" label="当前院校"> <el-form-item prop="schoolId" label="当前院校">
<el-select v-model="form.schoolId" filterable clearable placeholder="请选择学校"> <el-select v-model="form.schoolId" filterable clearable placeholder="请选择学校">
<el-option v-for="(item,index) in schoolList" :key="index" :label="item.schoolName" :value="item.schoolId"></el-option> <el-option v-for="(item,index) in schoolList" :key="index" :label="item.schoolName" :value="item.schoolId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6" :offset="2"> <el-col :span="6" :offset="2">
<el-form-item label="唯一识别码"> <el-form-item label="唯一识别码">
<el-input <el-input
v-model="form.uniqueIdentification" v-model="form.uniqueIdentification"
placeholder="请输入" placeholder="请输入"
:disabled="true" :disabled="true"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="IDNumber" label="证件号码"> <el-form-item prop="idNumber" label="证件号码">
<el-input <el-input
v-model="form.IDNumber" v-model="form.idNumber"
placeholder="请输入证件号码" placeholder="请输入证件号码"
maxlength="18" maxlength="18"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="省份"> <el-form-item label="省份">
<el-select <el-select
v-model="form.provinceId" v-model="form.provinceId"
clearable clearable
placeholder="请选择省份" placeholder="请选择省份"
@change="getCity" @change="getCity"
> >
<el-option <el-option
v-for="(item,index) in provinceList" v-for="(item,index) in provinceList"
:key="index" :key="index"
:label="item.provinceName" :label="item.provinceName"
:value="item.provinceId" :value="item.provinceId"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="出生日期"> <el-form-item label="出生日期">
<el-date-picker <el-date-picker
type="date" type="date"
placeholder="选择出生日期" placeholder="选择出生日期"
v-model="form.dateBirth" v-model="form.dateBirth"
style="width: 100%;" style="width: 100%;"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="性别"> <el-form-item label="性别">
<el-select clearable <el-select clearable
v-model="form.sex" v-model="form.sex"
:disabled="IDdisabled" :disabled="IDdisabled"
placeholder="请选择性别" placeholder="请选择性别"
> >
<el-option <el-option
v-for="(item,index) in sexList" v-for="(item,index) in sexList"
:key="index" :key="index"
:label="item.name" :label="item.name"
:value="item.value" :value="item.value"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item>
</el-col>
</el-form>
</div>
</div>
</el-card>
<!-- 账号信息 -->
<el-card shadow="hover" class="mgb20">
<div>
<div class="flex-between mgb20 user_header">
<div class="flex-center">
<p class="addhr_tag"></p>
<span>账号信息</span>
</div>
</div>
<div>
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="120px"
:disabled="isDetail"
>
<el-col :span="24">
<el-col :span="6" :offset="5">
<el-form-item prop="phone" label="个人手机">
<el-input
v-model="form.phone"
placeholder="请输入手机号"
maxlength="11"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form>
</div>
<div class="mgb20_top"> <el-col :span="6" :offset="2">
<p class="font_same">账号信息</p> <el-form-item label="微信号">
<el-form <el-input v-model="form.WeChatID" placeholder="请输入微信号"></el-input>
ref="form" </el-form-item>
:model="form"
:rules="rules"
label-width="120px"
:disabled="isDetail"
>
<el-col :span="24">
<el-col :span="6" :offset="5">
<el-form-item prop="phone" label="个人手机">
<el-input
v-model="form.phone"
placeholder="请输入手机号"
maxlength="11"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6" :offset="2">
<el-form-item label="微信号">
<el-input v-model="form.WeChatID" placeholder="请输入微信号"></el-input>
</el-form-item>
</el-col>
</el-col> </el-col>
</el-form> </el-col>
</div> </el-form>
</div> </div>
</div> </div>
</el-card> </el-card>
@ -229,7 +237,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="院校"> <el-form-item label="院校">
<el-select v-model="item.schoolId" filterable clearable placeholder="请选择院校" @change="schoolitemChange"> <el-select v-model="item.schoolId" filterable clearable placeholder="请选择院校" @change="id => getSchoolName(id,index)">
<el-option v-for="(item,index) in schoolList" :key="index" :label="item.schoolName" :value="item.schoolId"></el-option> <el-option v-for="(item,index) in schoolList" :key="index" :label="item.schoolName" :value="item.schoolId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -441,7 +449,7 @@ export default {
userName: '', // userName: '', //
uniqueIdentification: '', // uniqueIdentification: '', //
documentType: 1, // documentType: 1, //
IDNumber: '', // idNumber: '', //
cityId: '', // cityId: '', //
countries: '中国', // countries: '中国', //
provinceId: '', // provinceId: '', //
@ -489,7 +497,7 @@ export default {
trigger: 'blur' trigger: 'blur'
} }
], ],
IDNumber: [ idNumber: [
// { required: true, message: '', trigger: 'blur' }, // { required: true, message: '', trigger: 'blur' },
{ {
pattern: /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)/, pattern: /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)/,
@ -595,47 +603,61 @@ export default {
}; };
}, },
mounted() { mounted() {
this.getSchoolData()
if(this.userId){ if(this.userId){
this.getdata();
}
this.getSchoolData();
this.getSubject();
},
methods: {
getdata() {
this.$get(this.api.queryUserInfoDetails,{ userId: this.userId }).then(res => { this.$get(this.api.queryUserInfoDetails,{ userId: this.userId }).then(res => {
let userInfo = res.result.hrUserInfo let userInfo = res.result.hrUserInfo
let personalFileList = res.result.personalFileList let schoolId = userInfo.schoolId
let platformList = res.result.platformList this.form = Object.assign(userInfo,res.result.userAccountList[0])
let userAccount = res.result.userAccountList this.form.schoolId = schoolId
this.form.accountId = userInfo.id
this.form.userName = userInfo.userName this.originAccount = this.form.account
this.form.uniqueIdentification = userInfo.uniqueIdentification this.archivesList = res.result.personalFileList
this.form.IDNumber = userInfo.iDNumber
this.form.cityId = userInfo.cityId this.$nextTick(() => {
this.form.provinceId = userInfo.provinceId if(this.form.provinceId){
this.form.dateBirth = userInfo.dateBirth this.getCityData(1)
this.form.educationDegree = userInfo.educationDegree }
this.form.sex = userInfo.sex if(this.archivesList.length != 0){
this.form.schoolId = userInfo.schoolId this.archivesList.forEach((e,k) =>{
this.form.phone = userInfo.phone this.$set(e, 'subjectList', this.subjectList);
this.form.WeChatID = userAccount[0].wechatId this.$set(e, 'disciplineId', e.disciplineId ? e.disciplineId : '');
if(userInfo.provinceId){ this.$set(e, 'disciplineName', e.disciplineName ? e.disciplineName : '');
this.getCityData() this.$set(e, 'professionalClassId', e.professionalClassId ? e.professionalClassId : '');
} this.$set(e, 'professionalClassName', e.professionalClassName ? e.professionalClassName : '');
// this.$set(e, 'professionalId', e.professionalId ? e.professionalId : '');
if(personalFileList.length != 0){ this.$set(e, 'professionalName', e.professionalName ? e.professionalName : '');
personalFileList.map(e =>{ this.$set(e, 'schoolId', e.schoolId ? e.schoolId : '');
this.$set(e, 'subjectList', this.subjectList); this.$set(e, 'schoolName', e.schoolName ? e.schoolName : '');
if(e.disciplineId){
this.$get(this.api.queryCourseProfessionalClass, { disciplineId: e.disciplineId }).then(res => { if(e.disciplineId){
this.$set(e, 'ProfessionalClassList', res.list); this.$get(this.api.queryCourseProfessionalClass, { disciplineId: e.disciplineId }).then(res => {
}).catch(res => {}); this.$set(e, 'ProfessionalClassList', res.list);
} }).catch(res => {});
if(e.professionalClassId){ }else{
this.$get(this.api.queryCourseProfessional,{ professionalClassId: e.professionalClassId }).then(res => { this.$set(e, 'ProfessionalClassList', []);
this.$set(e, 'ProfessionalList', res.list); }
}).catch(res => {}); if(e.professionalClassId){
} this.$get(this.api.queryCourseProfessional,{ professionalClassId: e.professionalClassId }).then(res => {
}) this.$set(e, 'ProfessionalList', res.list);
} }).catch(res => {});
this.archivesList = personalFileList }else{
this.$set(e, 'ProfessionalList', []);
}
})
}else{
this.concatArch(1)
}
});
// //
let platformList = res.result.platformList
platformList.map(e =>{ platformList.map(e =>{
this.regionOption.map((r,index) =>{ this.regionOption.map((r,index) =>{
if(r.regionId == e.platformId){ if(r.regionId == e.platformId){
@ -645,9 +667,25 @@ export default {
}) })
this.platformList = platformList this.platformList = platformList
}).catch((res) => {}) }).catch((res) => {})
} },
}, concatArch() {
methods: { this.archivesList = this.archivesList.concat({
isNew: true,
personalCareerId: '',
schoolId: '',
schoolName: '',
subjectList: this.subjectList,
disciplineId: '',
disciplineName: '',
ProfessionalClassList: [],
professionalClassId: '',
professionalClassName: '',
ProfessionalList: [],
professionalId: '',
professionalName: '',
personalFileId: ''
})
},
getCity(){ getCity(){
if(this.form.provinceId){ if(this.form.provinceId){
this.getCityData() this.getCityData()
@ -658,19 +696,8 @@ export default {
this.cityList = res.list this.cityList = res.list
}).catch(res => {}); }).catch(res => {});
}, },
// getSchoolName(id,index){
schoolitemChange(item){ this.archivesList[index].schoolName = this.schoolList[id-1].schoolName
if(item){
this.archivesList.map(e =>{
if(e.schoolId == item){
let obj = {};
obj = this.schoolList.find(r =>{
return r.schoolId === item;
});
e.schoolName = obj.schoolName
}
})
}
}, },
// //
getSchoolData(){ getSchoolData(){

Loading…
Cancel
Save