Commit b56a1391 authored by wangxl's avatar wangxl

333

parent 59c21d3a
...@@ -92,7 +92,7 @@ export const routes = [ ...@@ -92,7 +92,7 @@ export const routes = [
meta: { title: '个人设置', icon: 'el-icon-user' }, meta: { title: '个人设置', icon: 'el-icon-user' },
hidden: false, hidden: false,
children: [ children: [
{ path: '/person/info', name: '个人设置', component: () => import('@/views/basicSetting/person/info.vue'), meta: { title: '个人设置', icon: '', noCache: true } }, { path: '/person/info', name: '个人设置', component: () => import('@/views/basicSetting/person/index.vue'), meta: { title: '个人设置', icon: '', noCache: true } },
] ]
}, },
{ {
...@@ -233,7 +233,7 @@ export const routes = [ ...@@ -233,7 +233,7 @@ export const routes = [
{ path: '/expert/expertBRegister', name: '专家导入', component: () => import('@/views/expert/components/expertImport.vue'), meta: { title: '专家导入', icon: '', noCache: true } }, { path: '/expert/expertBRegister', name: '专家导入', component: () => import('@/views/expert/components/expertImport.vue'), meta: { title: '专家导入', icon: '', noCache: true } },
{ path: '/expert/group', name: '专家组管理', component: () => import('@/views/expertGroup/expertBatch.vue'), meta: { title: '专家组管理', icon: '', noCache: true } }, { path: '/expert/group', name: '专家组管理', component: () => import('@/views/expertGroup/expertBatch.vue'), meta: { title: '专家组管理', icon: '', noCache: true } },
{ path: '/expert/group/members', name: '专家组成员管理', component: () => import('@/views/expertGroup/expertGroupMembers.vue'), meta: { title: '专家组成员管理', icon: '', noCache: true } }, { path: '/expert/group/members', name: '专家组成员管理', component: () => import('@/views/expertGroup/expertGroupMembers.vue'), meta: { title: '专家组成员管理', icon: '', noCache: true } },
{ path: '/expert/report', name: '专家推荐', component: () => import('@/views/report/expert/index.vue'), meta: { title: '专家推荐', icon: '', noCache: true } }, { path: '/expert/report', name: '专家推荐', component: () => import('@/views/expert/index.vue'), meta: { title: '专家推荐', icon: '', noCache: true } },
] ]
}, },
{ {
......
import Vue from 'vue'
import Api from '@/api/index.js'
const state = {
dict: {},
queue: []
}
const mutations = {
SET_DICT: (state, { type, list }) => {
// 设置值:注意得用Vue.set方法
Vue.set(state.dict, type, list)
},
SET_QUEUE: (state, type) => {
state.queue.push(type)
},
DEL_QUEUE: (state, type) => {
// 找到并删除
for (let i = 0; i < state.queue.length; i++) {
const item = state.queue[i]
if (item === type) {
state.queue.splice(i, 1)
break
}
}
}
}
const actions = {
getDict: (state) => {
return state.dict
},
getDictByType: (state) => (type) => {
/**
* 闭包特性。返回一个函数,该函数接收一个type参数。
* 同时由于闭包还持有state对象,故可以返回需要的值。
*/
return state.dict[type]
},
// 缓存字典内容
dict ({ commit, state }, type) {
// 判断是否已经缓存过,缓存过后将不再获取数据
const isExistence = state.queue.some((item) => {
return item === 'dict/' + type
})
// 没有缓存则请求数据
if (!isExistence) {
// 在异步请求之前将该任务标记为已缓存(存入队列)
commit('SET_QUEUE', 'dict/' + type)
return new Promise((resolve, reject) => {
return Api.getDict(type)
.then((res) => {
const { code, data } = res
if (code && code !== 200) {
// 获取失败移除缓存队列
commit('DEL_QUEUE', 'dict/' + type)
reject(res)
} else {
// 获取到的值存入字典
commit('SET_DICT', { type: type, list: data })
resolve(res)
}
})
.catch((error) => {
// 获取失败移除缓存队列
commit('DEL_QUEUE', 'dict/' + type)
reject(error)
})
})
} else {
return state.dict[type]
}
}
}
export default {
namespaced: true,
state,
mutations,
actions
}
\ No newline at end of file
...@@ -13,9 +13,6 @@ ...@@ -13,9 +13,6 @@
<a-form-item> <a-form-item>
<a-input placeholder="申报人" v-model="searchForm.appPersonName" :maxLength="50" style="width: 150px" /> <a-input placeholder="申报人" v-model="searchForm.appPersonName" :maxLength="50" style="width: 150px" />
</a-form-item> </a-form-item>
<a-form-item prop="knowledgeId">
<para-multi-select v-model="searchForm.knowledgeId" @parentChange="knowledgeChange" :typeId="57" />
</a-form-item>
<a-form-item> <a-form-item>
<a-button type="primary" size="default" icon="search" @click="search">搜索</a-button> <a-button type="primary" size="default" icon="search" @click="search">搜索</a-button>
<a-button icon="reload" style="margin-left: 10px" @click="reset" class="bt-normal">重置</a-button> <a-button icon="reload" style="margin-left: 10px" @click="reset" class="bt-normal">重置</a-button>
......
...@@ -37,7 +37,8 @@ ...@@ -37,7 +37,8 @@
</a-col> </a-col>
<a-col :span="20"> <a-col :span="20">
<a-form-model-item prop="spec"> <a-form-model-item prop="spec">
<para-multi-select :width="180" v-model="formData.spec" :typeId="57" /> <!-- <para-multi-select :width="180" v-model="formData.spec" :typeId="57" /> -->
<cascader-select v-model="formData.spec" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
...@@ -103,12 +104,12 @@ ...@@ -103,12 +104,12 @@
<script> <script>
import { isEmptyParams, checkEmail, checkPhone, checkIdentitytionId, personBirthday, personGender } from "@/views/utils/common" import { isEmptyParams, checkEmail, checkPhone, checkIdentitytionId, personBirthday, personGender } from "@/views/utils/common"
import cascaderSelect from '@/views/components/common/cascaderSelect'
export default { export default {
name: "infoEdit", name: "infoEdit",
components: { components: {
cascaderSelect
}, },
data () { data () {
return { return {
......
<template>
<div class="app-content" style="height:480px;overflow:auto;">
<a-spin :spinning="loading" style="width: 100%;height: 100%;">
<info-edit :formData.sync="formData" @load="onLoad" @sub="save" ref="infoEdit" />
<a-row>
<a-col style="text-align: center;width:100%;margin-top: 12px;">
<a-button type="primary" style="width:80px;" @click="submit">提交</a-button>
</a-col>
</a-row>
</a-spin>
</div>
</template>
<script>
import { getType, getComplete, setComplete } from '@/views/utils/auth'
import infoEdit from '@/views/basicSetting/person/components/infoEdit'
export default {
name: "personInfoEdit2",
components: {
infoEdit
},
data () {
return {
formData: {
id: null,
personName: null,
nation: null,
title: null,
spec: null,
degree: null,
duty: null,
telephone: null,
fax: null,
email: null,
address: null,
},
loading: false
}
},
created () {
this.getAppPersonInfo()
},
methods: {
getAppPersonInfo () {
this.loading = true
this.$api.person.getAppPersonInfo().then(({ data = {} }) => {
if (data) {
this.formData = data.person
if (data.isComplete) {
setComplete(data.isComplete)
this.$emit('sub', data.isComplete)
}
}
this.loading = false
}).catch(() => { this.loading = false })
},
submit () {
this.$refs.infoEdit.submit()
},
onLoad (value) {
this.loading = value
},
save (value) {
this.$emit('sub', value)
},
}
}
</script>
\ No newline at end of file
<template> <template>
<div class="app-content" style="height:480px;overflow:auto;"> <div class="app-content">
<a-spin :spinning="loading" style="width: 100%;height: 100%;"> <a-spin :spinning="loading" style="width: 100%;height: 100%;">
<info-edit :formData.sync="formData" @load="onLoad" @sub="save" ref="infoEdit" /> <div style="min-width:910px;width:100%;height: 100%;">
<a-row> <div class="card-left border-style">
<a-col style="text-align: center;width:100%;margin-top: 12px;"> <div class="holder-photo"><img alt="" src="https://gw.alipayobjects.com/zos/antfincdn/XAosXuNZyF/BiazfanxmamNRoxxVxka.png">
<a-button type="primary" style="width:80px;" @click="submit">提交</a-button> <div class="holder-name">
</a-col> <!-- <a title="修改" style="text-decoration:none;" href="#">[修改]</a> -->
</a-row> </div>
</div>
<div class="holder-info">
<a-row>
<a-col :span="6" class="title">
邮 箱
</a-col>
<a-col :span="18">
{{personInfo.email}}
</a-col>
</a-row>
<a-row>
<a-col :span="6" class="title">
手机号
</a-col>
<a-col :span="18">
{{personInfo.mobile}}
<!-- <a title="修改" style="text-decoration:none;" href="#">[修改]</a> -->
</a-col>
</a-row>
<a-divider dashed />
<a-row>
<a-col :span="6" class="title">
姓 名
</a-col>
<a-col :span="18">
{{personInfo.personName}}
</a-col>
</a-row>
<a-row>
<a-col :span="6" class="title">
性 别
</a-col>
<a-col :span="18">
{{personInfo.sex}}
</a-col>
</a-row>
<a-row>
<a-col :span="6" class="title">
生 日
</a-col>
<a-col :span="18">
{{personInfo.birthday}}
</a-col>
</a-row>
<a-row>
<a-col :span="6" class="title">
证件号
</a-col>
<a-col :span="18">
{{personInfo.certId}}
</a-col>
</a-row>
</div>
</div>
<div class="card-right border-style">
<a-tabs :activeKey="tabsActive" @tabClick="tabclick">
<a-tab-pane key="1" tab="设置">
</a-tab-pane>
<a-tab-pane key="2" tab="消息" force-render>
</a-tab-pane>
</a-tabs>
<div v-show="tabsActive!='1'">
<a-empty />
</div>
<div v-show="tabsActive=='1'">
<info-edit :formData.sync="formData" @load="onLoad" ref="infoEdit" />
<a-row>
<a-col style="text-align: center;width:100%;">
<a-button type="primary" style="width:80px;" @click="submit">保存</a-button>
</a-col>
</a-row>
</div>
</div>
</div>
</a-spin> </a-spin>
</div> </div>
</template> </template>
<script> <script>
import { getType, getComplete, setComplete } from '@/views/utils/auth'
import infoEdit from '@/views/basicSetting/person/components/infoEdit' import infoEdit from '@/views/basicSetting/person/components/infoEdit'
import moment from 'moment'
export default { export default {
name: "personInfoEdit", name: 'perInfoEdit',
components: { components: {
infoEdit infoEdit
}, },
data () { data () {
return { return {
tabsActive: '1',
personInfo: {
id: null, certId: null, personName: null, sex: null, birthday: null, nation: null, title: null, education: null, spec: null, mobile: null, email: null,
},
formData: { formData: {
id: null, id: null,
personName: null, personName: null,
...@@ -40,18 +117,20 @@ export default { ...@@ -40,18 +117,20 @@ export default {
} }
}, },
created () { created () {
this.getAppPersonInfo() this.getUserInfo()
}, },
methods: { methods: {
getAppPersonInfo () { moment,
tabclick (key) {
this.tabsActive = key
},
getUserInfo () {
this.loading = true this.loading = true
this.$api.person.getAppPersonInfo().then(({ data = {} }) => { this.$api.person.getUserInfo().then(({ data = {} }) => {
if (data) { if (data) {
this.formData = data.person this.personInfo = data
if (data.isComplete) { Object.assign(this.formData, data)
setComplete(data.isComplete) this.personInfo.birthday = moment(this.personInfo.birthday).format('YYYY-MM-DD')
this.$emit('sub', data.isComplete)
}
} }
this.loading = false this.loading = false
}).catch(() => { this.loading = false }) }).catch(() => { this.loading = false })
...@@ -61,10 +140,54 @@ export default { ...@@ -61,10 +140,54 @@ export default {
}, },
onLoad (value) { onLoad (value) {
this.loading = value this.loading = value
this.personInfo.email = this.formData.email
}, },
save (value) {
this.$emit('sub', value)
},
} }
} }
</script> </script>
\ No newline at end of file <style scoped lang="less">
.app-content {
padding: 10px 8px 10px 8px;
min-width: 920px;
.border-style {
border-radius: 4px;
border: 1px solid #e6ebf5;
background-color: #ffffff;
overflow: hidden;
color: #303133;
-webkit-transition: 0.3s;
transition: 0.3s;
}
.card-left {
float: left;
width: 300px;
height: 600px;
margin-right: 6px;
.holder-photo {
margin: 20px 0px 10px 0px;
text-align: center;
}
.holder-photo > img {
width: 104px;
height: 104px;
margin-bottom: 10px;
}
.holder-info {
padding: 0px 10px 0px 10px;
.ant-row .ant-col {
padding: 3px 5px 3px 5px;
}
}
.title {
text-align: right;
}
}
.card-right {
float: left;
width: calc(100% - 320px);
min-width: 600px;
min-height: 200px;
padding: 0px 15px 15px 15px;
}
}
</style>
<template>
<div class="app-content">
<div style="min-width:910px;width:100%;height: 100%;">
<div class="card-left border-style">
<div class="holder-photo"><img alt="" src="https://gw.alipayobjects.com/zos/antfincdn/XAosXuNZyF/BiazfanxmamNRoxxVxka.png">
<div class="holder-name">
<!-- <a title="修改" style="text-decoration:none;" href="#">[修改]</a> -->
</div>
</div>
<div class="holder-info">
<a-row>
<a-col :span="6" class="title">
邮 箱
</a-col>
<a-col :span="18">
{{personInfo.email}}
</a-col>
</a-row>
<a-row>
<a-col :span="6" class="title">
手机号
</a-col>
<a-col :span="18">
{{personInfo.mobile}}
<!-- <a title="修改" style="text-decoration:none;" href="#">[修改]</a> -->
</a-col>
</a-row>
<a-divider dashed />
<a-row>
<a-col :span="6" class="title">
姓 名
</a-col>
<a-col :span="18">
{{personInfo.personName}}
</a-col>
</a-row>
<a-row>
<a-col :span="6" class="title">
性 别
</a-col>
<a-col :span="18">
{{personInfo.sex}}
</a-col>
</a-row>
<a-row>
<a-col :span="6" class="title">
生 日
</a-col>
<a-col :span="18">
{{personInfo.birthday}}
</a-col>
</a-row>
<a-row>
<a-col :span="6" class="title">
证件号
</a-col>
<a-col :span="18">
{{personInfo.certId}}
</a-col>
</a-row>
</div>
</div>
<div class="card-right border-style">
<a-spin :spinning="loading" style="width: 100%;height: 100%;">
<a-tabs :activeKey="tabsActive" @tabClick="tabclick">
<a-tab-pane key="1" tab="设置">
</a-tab-pane>
<a-tab-pane key="2" tab="消息" force-render>
</a-tab-pane>
</a-tabs>
<div v-show="tabsActive!='1'">
<a-empty />
</div>
<div v-show="tabsActive=='1'">
<info-edit :formData.sync="formData" @load="onLoad" ref="infoEdit" />
<a-row>
<a-col style="text-align: center;width:100%;">
<a-button type="primary" style="width:80px;" @click="submit">保存</a-button>
</a-col>
</a-row>
</div>
</a-spin>
</div>
</div>
</div>
</template>
<script>
import infoEdit from '@/views/basicSetting/person/components/infoEdit'
import moment from 'moment'
export default {
name: 'perInfoEdit',
components: {
infoEdit
},
data () {
return {
tabsActive: '1',
personInfo: {
id: null, certId: null, personName: null, sex: null, birthday: null, nation: null, title: null, education: null, spec: null, mobile: null, email: null,
},
formData: {
id: null,
personName: null,
nation: null,
title: null,
spec: null,
degree: null,
duty: null,
telephone: null,
fax: null,
email: null,
address: null,
},
loading: false
}
},
created () {
this.getUserInfo()
},
methods: {
moment,
tabclick (key) {
this.tabsActive = key
},
getUserInfo () {
this.$api.person.getUserInfo().then(({ data = {} }) => {
if (data) {
this.personInfo = data
Object.assign(this.formData, data)
this.personInfo.birthday = moment(this.personInfo.birthday).format('YYYY-MM-DD')
}
}).catch(() => { })
},
submit () {
this.$refs.infoEdit.submit()
},
onLoad (value) {
this.loading = value
this.personInfo.email=this.formData.email
},
}
}
</script>
<style scoped lang="less">
.app-content {
padding: 10px 8px 10px 8px;
min-width: 920px;
.border-style {
border-radius: 4px;
border: 1px solid #e6ebf5;
background-color: #ffffff;
overflow: hidden;
color: #303133;
-webkit-transition: 0.3s;
transition: 0.3s;
}
.card-left {
float: left;
width: 300px;
height: 600px;
margin-right: 6px;
.holder-photo {
margin: 20px 0px 10px 0px;
text-align: center;
}
.holder-photo > img {
width: 104px;
height: 104px;
margin-bottom: 10px;
}
.holder-info {
padding: 0px 10px 0px 10px;
.ant-row .ant-col {
padding: 3px 5px 3px 5px;
}
}
.title {
text-align: right;
}
}
.card-right {
float: left;
width: calc(100% - 320px);
min-width: 600px;
min-height: 200px;
padding: 0px 15px 15px 15px;
}
}
</style>
...@@ -17,7 +17,7 @@ import infoEdit from '@/views/basicSetting/unit/components/infoEdit' ...@@ -17,7 +17,7 @@ import infoEdit from '@/views/basicSetting/unit/components/infoEdit'
import { getUnitComplete, setUnitComplete } from '@/views/utils/auth' import { getUnitComplete, setUnitComplete } from '@/views/utils/auth'
export default { export default {
name: "unitEdit", name: "unitInfoEdit2",
components: { components: {
infoEdit infoEdit
}, },
......
<template> <template>
<div style="height:420px;overflow:auto;"> <div style="height:65vh;overflow:auto;">
<a-spin :spinning="loading" style="width: 100%;height: 100%;"> <a-spin :spinning="loading" style="width: 100%;height: 100%;">
<a-form-model ref="form" :model="formData" :rules="rules" class="from-table"> <a-form-model ref="form" :model="formData" :rules="rules" class="from-table">
<a-row> <a-row>
...@@ -13,6 +13,17 @@ ...@@ -13,6 +13,17 @@
<a-input disabled="disabled" style="margin-left:6px;width: 250px" v-model="formData.certId" v-if="!!formData.id" /> <a-input disabled="disabled" style="margin-left:6px;width: 250px" v-model="formData.certId" v-if="!!formData.id" />
</a-col> </a-col>
</a-row> </a-row>
<a-row>
<a-col :span="4" class="bg-gray">
<div class="required">手机号</div>
</a-col>
<a-col :span="20">
<a-form-model-item ref="mobile" prop="mobile" v-if="!!!formData.id">
<a-input v-model="formData.mobile" @blur="() => {$refs.mobile.onFieldBlur();}" style="width: 250px" />
</a-form-model-item>
<a-input disabled="disabled" style="margin-left:6px;width:250px" v-model="formData.mobile" v-if="!!formData.id" />
</a-col>
</a-row>
<a-row> <a-row>
<a-col :span="4" class="bg-gray"> <a-col :span="4" class="bg-gray">
<div class="required">姓名</div> <div class="required">姓名</div>
...@@ -29,29 +40,18 @@ ...@@ -29,29 +40,18 @@
</a-col> </a-col>
<a-col :span="20"> <a-col :span="20">
<a-form-model-item ref="treeCode" prop="treeCode"> <a-form-model-item ref="treeCode" prop="treeCode">
<unit-tree-select v-model="formData.treeCode" :disable="false" :unitType="2" :width="200" /> <span style="color: green;margin-left: 6px;">※系统中单位选择此项</span> <unit-tree-select v-model="formData.treeCode" :disable="false" :unitType="2" :width="200" /> <span style="color: green;margin-left: 6px;">※系统中单位选择此项</span>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row> <a-row v-if="isShow">
<a-col :span="4" class="bg-gray"> <a-col :span="4" class="bg-gray">
<div>工作单位</div> <div>工作单位</div>
</a-col> </a-col>
<a-col :span="20"> <a-col :span="20">
<a-form-model-item ref="workUnit" prop="workUnit"> <a-form-model-item ref="workUnit" prop="workUnit">
<a-input v-model="formData.workUnit" @blur="() => {$refs.workUnit.onFieldBlur(); }" style="width: 200px" /> <span style="color: green;margin-left: 6px;">※非系统中单位填写此项</span> <a-input v-model="formData.workUnit" @blur="() => {$refs.workUnit.onFieldBlur(); }" style="width: 200px" /> <span style="color: green;margin-left: 6px;">※非系统中单位填写此项</span>
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col :span="4" class="bg-gray">
<div class="required">手机号</div>
</a-col>
<a-col :span="20">
<a-form-model-item ref="mobile" prop="mobile" v-if="!!!formData.id">
<a-input v-model="formData.mobile" @blur="() => {$refs.mobile.onFieldBlur();}" style="width: 250px" />
</a-form-model-item> </a-form-model-item>
<a-input disabled="disabled" style="margin-left:6px;width:250px" v-model="formData.mobile" v-if="!!formData.id" />
</a-col> </a-col>
</a-row> </a-row>
<a-row> <a-row>
...@@ -59,19 +59,23 @@ ...@@ -59,19 +59,23 @@
<div class="required">职称</div> <div class="required">职称</div>
</a-col> </a-col>
<a-col :span="20"> <a-col :span="20">
<a-form-model-item ref="title" prop="title" :label-col="{ span: 3 }" :wrapper-col="{ span: 21 }"> <a-form-model-item ref="title" prop="title" >
<para-multi-select v-model="formData.title" :typeId="7" /> <para-multi-select v-model="formData.title" :typeId="7" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row> <a-row type="flex">
<a-col :span="4" class="bg-gray"> <a-col :span="4" class="bg-gray">
<div class="required">评审专业</div> <div class="special-middle">
<div class="required">评审专业</div>
</div>
</a-col> </a-col>
<a-col :span="20"> <a-col :span="20">
<a-form-model-item ref="auditSpecList" prop="auditSpecList" :label-col="{ span: 3 }" :wrapper-col="{ span: 21 }"> <div class="special-middle">
<spec-select v-model="formData.auditSpecList" /> <a-form-model-item ref="specList" prop="specList" >
</a-form-model-item> <spec-select :specList.sync="formData.specList" />
</a-form-model-item>
</div>
</a-col> </a-col>
</a-row> </a-row>
<a-row> <a-row>
...@@ -121,7 +125,7 @@ export default { ...@@ -121,7 +125,7 @@ export default {
return { return {
loading: true, loading: true,
isShow: false, isShow: false,
formData: { id: null, personName: null, sex: '', birthday: null, certId: null, mobile: null, remark: null, email: null, title: null, auditSpecList: [], treeCode: null }, formData: { id: null, personName: null, sex: '', birthday: null, certId: null, mobile: null, remark: null, email: null, title: null, specList: [], treeCode: null },
rules: { rules: {
certId: [ certId: [
{ required: true, message: '请输入证件号', trigger: 'blur' }, { required: true, message: '请输入证件号', trigger: 'blur' },
...@@ -159,7 +163,7 @@ export default { ...@@ -159,7 +163,7 @@ export default {
personName: [{ required: true, message: '请输入姓名', trigger: 'blur' }], personName: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
workUnit: [{ required: false, message: '请输入工作单位', trigger: 'blur' }], workUnit: [{ required: false, message: '请输入工作单位', trigger: 'blur' }],
sex: [{ required: true, message: '请选择性别', trigger: 'change' }], sex: [{ required: true, message: '请选择性别', trigger: 'change' }],
auditSpecList: [{ required: true, message: '请选择评审专业', trigger: 'change' }], specList: [{ required: true, message: '请选择评审专业', trigger: 'change' }],
title: [{ required: true, message: '请选择职称', trigger: 'change' }], title: [{ required: true, message: '请选择职称', trigger: 'change' }],
treeCode: [{ required: false, message: '请选择单位', trigger: 'change' }], treeCode: [{ required: false, message: '请选择单位', trigger: 'change' }],
remark: [{ required: false, message: '请输入备注', trigger: 'blur' }], remark: [{ required: false, message: '请输入备注', trigger: 'blur' }],
......
<template> <template>
<div style="width:auto;display:inline-block !important; display:inline;"> <div>
<a-select mode="tags" v-model="selected" style="width: 400px" @change="onChange" showArrow allowClear> <a-row v-for="(item, index) in specList" :key="'specList'+index" type="flex">
<a-select-opt-group v-for="item in selectArray" :key="item.key"> <a-col :span="20">
<span slot="label"> <div class="special-middle">
<a-icon type="bars" />{{ item.title }} <div>
</span> <a-form-model-item :prop="'specList.' + index + '.specId'" :rules="{ required: true, message: '*', trigger: 'change',}">
<a-select-option v-for="arr in item.children" :key="arr.key" :value="arr.key"> <cascader-select v-model="item.specId" />
{{ arr.title }} </a-form-model-item>
</a-select-option> </div>
</a-select-opt-group> </div>
</a-select> </a-col>
<a-col :span="2">
<div class="special-middle">
<a-popconfirm title="确定要删除吗?" ok-text="确定" cancel-text="取消" @confirm="removeArray(item)">
<a-button type="link" size="small">[删除]</a-button>
</a-popconfirm>
</div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="24" style="text-align: center;">
<div class="special-middle">
<a-button type="dashed" style="width: 50%" @click="addArray">
<a-icon type="plus" /> 添加
</a-button>
</div>
</a-col>
</a-row>
</div> </div>
</template> </template>
<script> <script>
// 用法 <spec-select v-model="formData.projClass" /> const Model = {}
import cascaderSelect from '@/views/components/common/cascaderSelect'
export default { export default {
name: "SpecSelect", name: 'specSelect',
components: {
cascaderSelect
},
data () { data () {
return { return {
selectArray: [],
selected: [], }
loadState: false,
};
}, },
props: { props: {
value: null, specList: {
width: { type: Array,
type: Number,
default () { default () {
return 180 return []
} }
} },
}, },
created () { created () {
this.load(this.value)
}, },
methods: { methods: {
load (value) { addArray () {//添加成员
if (this.selectArray.length > 0) { this.specList.push({ ...Model })
this.selected = value
} else {
this.$api.parameter.getArrayListByType({ typeId: 56 }).then(({ data = {} }) => {
if (data) {
this.selectArray = data
this.selected = value
}
}).catch(() => { })
}
},
onChange () {
if (this.selected.length > 3) {
this.$message.error('最多只能选三个专业')
this.selected = this.selected.splice(0, 3)
}
this.$emit("input", this.selected);
this.$emit("change");
}, },
}, removeArray (item) {//移除成员
watch: { let index = this.specList.indexOf(item)
value: { if (index !== -1) {
handler (value) { this.specList.splice(index, 1)
if (!this.loadState) {
this.load(value)
this.loadState = true
}
} }
}, },
}, },
}; }
</script> </script>
...@@ -8,8 +8,8 @@ ...@@ -8,8 +8,8 @@
<a-input v-model="searchForm.certId" placeholder="证件号" :maxLength="100" style="width: 150px" /> <a-input v-model="searchForm.certId" placeholder="证件号" :maxLength="100" style="width: 150px" />
</a-form-item> </a-form-item>
<a-form-item> <a-form-item>
<a-select v-model="searchForm.sex" style="width: 130px"> <a-select v-model="searchForm.sex" style="width: 100px">
<a-select-option value="">--请选择性别--</a-select-option> <a-select-option value="">--性别--</a-select-option>
<a-select-option value="男"></a-select-option> <a-select-option value="男"></a-select-option>
<a-select-option value="女"></a-select-option> <a-select-option value="女"></a-select-option>
</a-select> </a-select>
...@@ -20,9 +20,6 @@ ...@@ -20,9 +20,6 @@
<a-form-item> <a-form-item>
<a-input v-model="searchForm.username" placeholder="用户名" :maxLength="100" style="width: 130px" /> <a-input v-model="searchForm.username" placeholder="用户名" :maxLength="100" style="width: 130px" />
</a-form-item> </a-form-item>
<a-form-item>
<a-input v-model="searchForm.remark" placeholder="备注" :maxLength="100" style="width: 130px" />
</a-form-item>
<a-form-item> <a-form-item>
<para-multi-select v-model="searchForm.title" @parentChange="titleChange" :title="'职称'" :objType="'project'" :typeId="7" :width="150" /> <para-multi-select v-model="searchForm.title" @parentChange="titleChange" :title="'职称'" :objType="'project'" :typeId="7" :width="150" />
</a-form-item> </a-form-item>
...@@ -47,20 +44,24 @@ ...@@ -47,20 +44,24 @@
<template slot="spec" slot-scope="record"> <template slot="spec" slot-scope="record">
<span v-for="data in record.specList" :key="data.id" :color="'green'">{{data.specName+' '}}</span> <span v-for="data in record.specList" :key="data.id" :color="'green'">{{data.specName+' '}}</span>
</template> </template>
<template slot="reportState" slot-scope="record">
<span v-if="record.reportState===2">已上报</span>
<span v-else>未上报</span>
</template>
<template slot="stateSwitch" slot-scope="record"> <template slot="stateSwitch" slot-scope="record">
<a-switch checked-children="启用" un-checked-children="停用" :checked="checkedState(record)" @change="switchChange($event,record)" /> <a-switch checked-children="启用" un-checked-children="停用" :checked="checkedState(record)" @change="switchChange($event,record)" />
</template> </template>
<template slot="option" slot-scope="record"> <template slot="option" slot-scope="record">
<a-button type="link" size="small" @click="recordClick(record,'edit')">修改</a-button> <a-button type="link" size="small" @click="recordClick(record,'edit')">修改</a-button>
<!-- <a-button type="link" size="small" @click="recordClick(record,'reset')">重置密码</a-button> --> <a-button type="link" size="small" @click="recordClick(record,'reset')">重置密码</a-button>
<!-- <a-button type="link" size="small" @click="recordClick(record,'del')">删除</a-button> --> <a-button type="link" size="small" @click="recordClick(record,'del')">删除</a-button>
</template> </template>
</a-table> </a-table>
<a-pagination v-if="pagination.total > 0" :total="pagination.total" show-size-changer show-quick-jumper v-model="pagination.pageIndex" :page-size="pagination.pageSize" :page-size-options="pagination.pageSizeOptions" @showSizeChange="showSizeChange" @change="change" :showTotal="() => `共 ${pagination.total} 条`" /> <a-pagination v-if="pagination.total > 0" :total="pagination.total" show-size-changer show-quick-jumper v-model="pagination.pageIndex" :page-size="pagination.pageSize" :page-size-options="pagination.pageSizeOptions" @showSizeChange="showSizeChange" @change="change" :showTotal="() => `共 ${pagination.total} 条`" />
<a-modal v-model="visibleView" title="查看" width="700px" :dialog-style="{ top: '15%' }" :footer="null" destroyOnClose> <a-modal v-model="visibleView" title="查看" width="700px" :dialog-style="{ top: '10%' }" :footer="null" destroyOnClose>
<expert-view v-model="id"></expert-view> <expert-view v-model="id"></expert-view>
</a-modal> </a-modal>
<a-modal v-model="visibleEdit" title="添加/修改" width="850px" :dialog-style="{ top: '15%' }" :footer="null" destroyOnClose> <a-modal v-model="visibleEdit" title="添加/修改" width="850px" :dialog-style="{ top: '10%' }" :footer="null" destroyOnClose>
<expert-edit v-model="id" @close="closeWindow"></expert-edit> <expert-edit v-model="id" @close="closeWindow"></expert-edit>
</a-modal> </a-modal>
<a-modal v-model="visibleImport" title="专家导入" width="80%" :dialog-style="{ top: '8%' }" :footer="null" destroyOnClose> <a-modal v-model="visibleImport" title="专家导入" width="80%" :dialog-style="{ top: '8%' }" :footer="null" destroyOnClose>
...@@ -93,6 +94,7 @@ export default { ...@@ -93,6 +94,7 @@ export default {
{ title: '单位', dataIndex: 'unitName', align: 'center' }, { title: '单位', dataIndex: 'unitName', align: 'center' },
{ title: '用户名', dataIndex: 'username', align: 'center' }, { title: '用户名', dataIndex: 'username', align: 'center' },
{ title: '密码', dataIndex: 'password', align: 'center' }, { title: '密码', dataIndex: 'password', align: 'center' },
{ title: '上报状态', scopedSlots: { customRender: 'reportState' }, align: 'center' },
{ title: '状态', scopedSlots: { customRender: 'stateSwitch' }, align: 'center' }, { title: '状态', scopedSlots: { customRender: 'stateSwitch' }, align: 'center' },
{ title: '操作', scopedSlots: { customRender: 'option' }, align: 'center', fixed: 'right', width: '180px', }, { title: '操作', scopedSlots: { customRender: 'option' }, align: 'center', fixed: 'right', width: '180px', },
], ],
...@@ -195,6 +197,15 @@ export default { ...@@ -195,6 +197,15 @@ export default {
else if (type === 'del') { else if (type === 'del') {
this.deleteExpert(record.id, record.userRoleId) this.deleteExpert(record.id, record.userRoleId)
} }
else if (type === 'report') {
this.$api.expert.update({ id: record.id, reportState: 2 }).then(({ data = {} }) => {
if (data) {
this.$message.success('上报成功!')
this.getListByPage()
}
this.loading = false
}).catch(() => { this.loading = false })
}
}, },
resetPwd (record) { resetPwd (record) {
let self = this let self = this
......
<template>
<div style="height:420px;overflow:auto;">
<a-spin :spinning="loading" style="width: 100%;height: 100%;">
<a-form-model ref="form" :model="formData" :rules="rules" class="from-table">
<a-row>
<a-col :span="4" class="bg-gray">
<div class="required">证件号</div>
</a-col>
<a-col :span="20">
<a-form-model-item ref="certId" prop="certId" v-if="!!!formData.id">
<a-input v-model="formData.certId" @blur="() => {$refs.certId.onFieldBlur(); }" style="width: 250px" />
</a-form-model-item>
<a-input disabled="disabled" style="margin-left:6px;width: 250px" v-model="formData.certId" v-if="!!formData.id" />
</a-col>
</a-row>
<a-row>
<a-col :span="4" class="bg-gray">
<div class="required">姓名</div>
</a-col>
<a-col :span="20">
<a-form-model-item ref="personName" prop="personName">
<a-input v-model="formData.personName" @blur="() => {$refs.personName.onFieldBlur(); }" style="width: 250px" />
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col :span="4" class="bg-gray">
<div class="required">手机号</div>
</a-col>
<a-col :span="20">
<a-form-model-item ref="mobile" prop="mobile" v-if="!!!formData.id">
<a-input v-model="formData.mobile" @blur="() => {$refs.mobile.onFieldBlur();}" style="width: 250px" />
</a-form-model-item>
<a-input disabled="disabled" style="margin-left:6px;width:250px" v-model="formData.mobile" v-if="!!formData.id" />
</a-col>
</a-row>
<a-row>
<a-col :span="4" class="bg-gray">
<div class="required">职称</div>
</a-col>
<a-col :span="20">
<a-form-model-item ref="title" prop="title" :label-col="{ span: 3 }" :wrapper-col="{ span: 21 }">
<para-multi-select v-model="formData.title" :typeId="7" />
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col :span="4" class="bg-gray">
<div class="required">评审专业</div>
</a-col>
<a-col :span="20">
<a-form-model-item ref="auditSpecList" prop="auditSpecList" :label-col="{ span: 3 }" :wrapper-col="{ span: 21 }">
<spec-select v-model="formData.auditSpecList" />
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col :span="4" class="bg-gray" style="padding-left:16px">
<div> 邮箱</div>
</a-col>
<a-col :span="20">
<a-form-model-item ref="email" prop="email">
<a-input v-model="formData.email" @blur="() => {$refs.email.onFieldBlur();}" style="width: 250px" />
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col :span="4" class="bg-gray" style="padding-left:16px">
<div>备注</div>
</a-col>
<a-col :span="20">
<a-form-model-item ref="email" prop="remark">
<a-input v-model="formData.remark" @blur="() => {$refs.remark.onFieldBlur();}" style="width: 250px" />
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col :span="24" style="text-align:center;">
<a-button type="primary" style="margin-right: 50px" @click="submit">提交</a-button>
</a-col>
</a-row>
</a-form-model>
</a-spin>
</div>
</template>
<script>
import { isEmptyParams, checkEmail, checkPhone, checkIdentitytionId, personBirthday, personGender } from "@/views/utils/common"
import { isIdentityId } from '@/views/utils/validate'
import moment from 'moment'
import specSelect from '@/views/expert/components/specSelect'
import unitSelect from '@/views/components/common/unitSelect'
import unitTreeSelect from '@/views/components/common/unitTreeSelect'
export default {
name: 'expertEdit',
components: {
unitSelect, specSelect, unitTreeSelect
},
data () {
return {
loading: true,
isShow: false,
formData: { id: null, personName: null, sex: '', birthday: null, certId: null, mobile: null, remark: null, email: null, title: null, auditSpecList: [], treeCode: null },
rules: {
certId: [
{ required: true, message: '请输入证件号', trigger: 'blur' },
{
validator: (rule, value, callback) => {
if (value == '' || value == undefined) {
callback()
}
var errorMsg = isIdentityId(value);
if (errorMsg != "") {
callback(new Error(errorMsg));
} else {
let pars = { certId: this.formData.certId, id: this.formData.id }
this.$api.expert.expertIsExist(pars).then(({ data = {} }) => {
if (data) {
callback(new Error("专家已存在"));
} else {
this.formData.sex = personGender(this.formData.certId)
this.formData.birthday = personBirthday(this.formData.certId) + ' 00:00:00'
callback()
}
})
}
}
}
],
mobile: [
{ required: true, message: '请输入手机号', trigger: 'blur' },
{ required: true, validator: checkPhone, trigger: 'blur' }
],
email: [
{ required: false, message: '请输入邮箱', trigger: 'blur' },
{ required: false, validator: checkEmail, trigger: 'blur' }
],
personName: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
// sex: [{ required: true, message: '请选择性别', trigger: 'change' }],
auditSpecList: [{ required: true, message: '请选择评审专业', trigger: 'change' }],
title: [{ required: true, message: '请选择职称', trigger: 'change' }],
// treeCode: [{ required: false, message: '请选择单位', trigger: 'change' }],
remark: [{ required: false, message: '请输入备注', trigger: 'blur' }],
},
}
},
props: {
value: {
type: String,
default: () => {
return null
}
},
},
created () {
let user = JSON.parse(window.sessionStorage.getItem('user'))
if (user && user.roles) {
if (user.roles.indexOf("0") != -1) {
this.isShow = true
}
}
if (this.value)
this.getExpertById()
else
this.loading = false
},
methods: {
moment,
getExpertById () {
this.$api.expert.getExpertById({ id: this.value }).then(({ data = {} }) => {
if (data) {
this.formData = data
}
this.loading = false
}).catch(() => { this.loading = false })
},
submit () {
this.$refs.form.validate(valid => {
if (valid) {
this.loading = true
let pars = isEmptyParams(this.formData)
let par = { ...pars }
if (!!!this.formData.id) {
this.$api.expert.insert(par).then(({ data = {} }) => {
if (data) {
this.$message.success('成功!')
this.$emit('close', 'edit')
}
this.loading = false
}).catch(() => { this.loading = false })
} else {
this.$api.expert.update(par).then(({ data = {} }) => {
if (data) {
this.$message.success('成功!')
this.$emit('close', 'edit')
}
this.loading = false
}).catch(() => { this.loading = false })
}
} else {
return false
}
})
},
}
}
</script>
\ No newline at end of file
<template>
<div class="app-content" style="height:75vh;overflow: auto;">
<div class="submit-btn upload-header">
<a :href="url.downloadUrl" download="ExpertInfo.xlsx">
<a-icon type="download"></a-icon>&nbsp;<span style="color:green;text-decoration:underline;">模板下载</span>
</a>
<FileUpload @beforeUpload="beforeUpload" />
<a-divider style="height: 1px; background-color: #e8e8e8;" />
</div>
<a-divider style="height: 1px; background-color: #e8e8e8;" />
<div class="upload-table">
<a-table :dataSource="tableData" :columns="columns" rowKey="index" :pagination="false" :loading="loading">
<template slot="stateSwitch" slot-scope="record">
<a-switch checked-children="正常" un-checked-children="注销" :checked="checkedState(record)" @change="switchChange($event, record)" />
</template>
<template slot="option" slot-scope="record">
<a-button type="primary" size="small" @click="recordClick(record, 'view')">查看</a-button>
<a-button type="primary" size="small" @click="recordClick(record, 'edit')">修改</a-button>
<a-button type="primary" size="small" @click="recordClick(record, 'reset')">重置密码</a-button>
</template>
</a-table>
</div>
<div class="upload-bottom" style="text-align:center;padding:6px 0">
<a-button type="primary" @click="dataImport" :disabled="disabled">导入</a-button>
</div>
</div>
</template>
<script>
import { isEmptyParams, readExcelFile, personGender, personBirthday, checkIdentitytionId, checkEmail, checkPhone } from "@/views/utils/common"
import moment from "moment"
export default {
name: "expertImport",
data () {
return {
columns: [
{ title: "姓名", dataIndex: "personName", align: 'center' },
{ title: "证件号", dataIndex: "certId", align: 'center' },
// { title: "性别", dataIndex: "sex" },
// { title: "出生日期", dataIndex: 'birthday' },
{ title: "手机号", dataIndex: "mobile", align: 'center' },
{ title: "邮箱", dataIndex: "email", align: 'center' },
{ title: "职称", dataIndex: "titleName", align: 'center' },
{ title: "专业", dataIndex: "specName", align: 'center' },
{ title: '单位', dataIndex: 'unitName', align: 'center' },
],
tableData: [],
disabled: true,
loading: false,
url: {
downloadUrl: '/downloadFile/ExpertInfo.xlsx',
}
};
},
created () {
},
methods: {
beforeUpload (file) {
this.tableData = []
let list = readExcelFile(file, 0)
let certList = []
let mobileList = []
let exportList = []
list.then((d) => {
//读取文件数据
d.forEach(e => {
let gender = personGender(e.证件号)
let birthday = personBirthday(e.证件号) + ' 00:00:00'
let expert = { personName: e.姓名, certId: e.证件号, sex: gender, birthday: moment(birthday).format('YYYY-MM-DD HH:mm:ss'), mobile: e.手机号, email: e.邮箱, specName: e.专业, titleName: e.职称, unitName: e.单位 }
exportList.push(expert)
certList.push(e.证件号)
mobileList.push(e.手机号)
})
let uniqueMobileList = [...new Set(mobileList)]
if (uniqueMobileList.length != exportList.length) {
this.$message.error('手机号出现重复!')
return false
}
let uniqueCertList = [...new Set(certList)]
if (uniqueCertList.length != exportList.length) {
this.$message.error('证件号出现重复!')
return false
}
if (exportList.length > 0) {
this.tableData = exportList
this.disabled = false
}
})
return false
},
dataImport () {
if (this.tableData.length == 0) {
this.$message.error('请选择Excel!')
return
}
let pars = isEmptyParams(this.tableData)
let par = { ...pars }
this.$api.expert.expertImport(this.tableData).then(({ data = {} }) => {
if (data) {
this.$message.info(data)
this.tableData = []
}
})
}
},
};
</script>
<style scoped lang="less">
.upload-header {
height: 30px;
}
.upload-table {
min-height: 150px;
max-height: calc(100% - 75px);
overflow-y: auto;
}
.upload-bottom {
height: 42px;
}
</style>
<template>
<div class="from-table" style="height:280px;overflow:auto;">
<a-spin :spinning="loading" style="width: 100%;height: 100%;">
<a-row>
<a-col :span="4" class="bg-gray">
姓名:
</a-col>
<a-col :span="8">
{{expertInfo.personName}}
</a-col>
<a-col :span="4" class="bg-gray">
证件号:
</a-col>
<a-col :span="8">
{{expertInfo.certId}}
</a-col>
</a-row>
<a-row>
<a-col :span="4" class="bg-gray">
性别:
</a-col>
<a-col :span="8">
{{expertInfo.sex}}
</a-col>
<a-col :span="4" class="bg-gray">
职称:
</a-col>
<a-col :span="8">
{{expertInfo.titleName}}
</a-col>
</a-row>
<a-row>
<a-col :span="4" class="bg-gray">
联系电话:
</a-col>
<a-col :span="8">
{{expertInfo.mobile}}
</a-col>
<a-col :span="4" class="bg-gray">
邮箱:
</a-col>
<a-col :span="8">
{{expertInfo.email}}
</a-col>
</a-row>
<a-row>
<a-col :span="4" class="bg-gray">
专业:
</a-col>
<a-col :span="20">
<a-tag v-for="data in expertInfo.specList" :key="data.id" :color="'green'">{{data.specName}}</a-tag>
</a-col>
</a-row>
<a-row>
<a-col :span="4" class="bg-gray">
工作单位:
</a-col>
<a-col :span="20">
{{expertInfo.workUnit}}
</a-col>
</a-row>
</a-spin>
</div>
</template>
<script>
import moment from 'moment'
export default {
name: "expertView",
data () {
return {
expertInfo: { id: '', certId: '', sex: '', birthday: null, mobile: '', email: '', title: '', unitId: null, degree: null, spec: null, address: '' },
loading: true
}
},
props: {
value: {
type: String,
default: () => {
return null
}
},
obj: {
type: Object
}
},
created () {
this.getExpertById()
},
methods: {
moment,
getExpertById () {
let pars = { id: this.value }
this.$api.expert.getExpertById(pars).then(({ data = {} }) => {
if (data) {
this.expertInfo = data
}
this.loading = false
}).catch(() => {
this.loading = false
})
}
}
}
</script>
\ No newline at end of file
<template>
<div style="width:auto;display:inline-block !important; display:inline;">
<a-select mode="tags" v-model="selected" style="width: 400px" @change="onChange" showArrow allowClear>
<a-select-opt-group v-for="item in selectArray" :key="item.key">
<span slot="label">
<a-icon type="bars" />{{ item.title }}
</span>
<a-select-option v-for="arr in item.children" :key="arr.key" :value="arr.key">
{{ arr.title }}
</a-select-option>
</a-select-opt-group>
</a-select>
</div>
</template>
<script>
// 用法 <spec-select v-model="formData.projClass" />
export default {
name: "SpecSelect",
data () {
return {
selectArray: [],
selected: [],
loadState: false,
};
},
props: {
value: null,
width: {
type: Number,
default () {
return 180
}
}
},
created () {
this.load(this.value)
},
methods: {
load (value) {
if (this.selectArray.length > 0) {
this.selected = value
} else {
this.$api.parameter.getArrayListByType({ typeId: 56 }).then(({ data = {} }) => {
if (data) {
this.selectArray = data
this.selected = value
}
}).catch(() => { })
}
},
onChange () {
if (this.selected.length > 3) {
this.$message.error('最多只能选三个专业')
this.selected = this.selected.splice(0, 3)
}
this.$emit("input", this.selected);
this.$emit("change");
},
},
watch: {
value: {
handler (value) {
if (!this.loadState) {
this.load(value)
this.loadState = true
}
}
},
},
};
</script>
This diff is collapsed.
...@@ -75,7 +75,7 @@ import projectEditKey from "@/views/report/project/components/keyProject/project ...@@ -75,7 +75,7 @@ import projectEditKey from "@/views/report/project/components/keyProject/project
import projectView from '@/views/report/project/components/projectView' import projectView from '@/views/report/project/components/projectView'
import previewFile from '@/views/components/common/previewFile' import previewFile from '@/views/components/common/previewFile'
import knowledgeSelect from '@/views/components/common/knowledgeSelect' import knowledgeSelect from '@/views/components/common/knowledgeSelect'
import personInfoEdit from '@/views/basicSetting/person/index' import personInfoEdit from '@/views/basicSetting/person/edit'
import axios from 'axios' import axios from 'axios'
......
...@@ -644,6 +644,7 @@ const projectKPI = { ...@@ -644,6 +644,7 @@ const projectKPI = {
threeLevel: [], threeLevel: [],
kpiList: [], kpiList: [],
}; };
import cascaderSelect from '@/views/components/common/cascaderSelect' import cascaderSelect from '@/views/components/common/cascaderSelect'
export default { export default {
name: 'projectEdit', name: 'projectEdit',
......
...@@ -23,9 +23,6 @@ ...@@ -23,9 +23,6 @@
<a-form-item> <a-form-item>
<base-select v-model="searchForm.projState" :title="'项目状态'" :type="1" :isAll="true" :width="160" /> <base-select v-model="searchForm.projState" :title="'项目状态'" :type="1" :isAll="true" :width="160" />
</a-form-item> </a-form-item>
<a-form-item>
<para-multi-select v-model="searchForm.knowledgeId" @parentChange="parChange" :title="'学科'" :objType="'project'" :typeId="57" :width="150" />
</a-form-item>
<a-form-item> <a-form-item>
<a-button type="primary" icon="search" @click="search">搜索</a-button> <a-button type="primary" icon="search" @click="search">搜索</a-button>
<a-button icon="reload" style="margin-left: 10px" @click="reset" class="bt-normal">重置</a-button> <a-button icon="reload" style="margin-left: 10px" @click="reset" class="bt-normal">重置</a-button>
......
...@@ -3136,9 +3136,9 @@ html { ...@@ -3136,9 +3136,9 @@ html {
} }
.ant-select-dropdown-menu-item-group-title { .ant-select-dropdown-menu-item-group-title {
height: 32px; /* height: 32px; */
padding: 0 12px; padding: 0 12px;
color: rgba(0, 0, 0, 0.45); /* color: rgba(0, 0, 0, 0.45); */
font-size: 12px; font-size: 12px;
line-height: 32px; line-height: 32px;
} }
...@@ -3155,7 +3155,7 @@ html { ...@@ -3155,7 +3155,7 @@ html {
overflow: hidden; overflow: hidden;
color: rgba(0, 0, 0, 0.65); color: rgba(0, 0, 0, 0.65);
font-weight: normal; font-weight: normal;
font-size: 14px; font-size: 13px;
line-height: 22px; line-height: 22px;
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
......
...@@ -658,4 +658,9 @@ ...@@ -658,4 +658,9 @@
-webkit-text-stroke-width: 0.2px; -webkit-text-stroke-width: 0.2px;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
} }
} }
\ No newline at end of file .spac_comp {
.spac-comp-title {
color: rgba(0, 0, 0, 0.65);
}
}
\ No newline at end of file
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