[add] 增加人员信息

This commit is contained in:
lideqin
2023-11-30 20:28:18 +08:00
parent 3324230195
commit 4e793458f7
10 changed files with 253 additions and 98 deletions
+5
View File
@@ -18,6 +18,9 @@ const checkRuleByCode = (params) => getAction('/sys/checkRule/checkByCode', para
// 通过文件的id获取文件的相应信息
const getFileInfo = (params) => getAction('/sys/oss/file/queryById', params)
// 获取人员信息列表
const getPersonInfoList = (params) => getAction('/process/fb/processFbInfo/getNodeList', params)
// 标准入库/变更流程------------
// 国内法规标准-获取表单模型
const getDomesticStandardFormModal = (params) => getAction('/laws/standard/domestic/getFormModel', params)
@@ -32,6 +35,8 @@ export {
getFileInfo,
getSSOUserInfo,
getPersonInfoList,
getDomesticStandardFormModal,
queryStandardECProcessData
}
+37
View File
@@ -0,0 +1,37 @@
@font-face {
font-family: "iconfont"; /* Project id 4352783 */
src: url('iconfont.ttf?t=1701345493350') format('truetype');
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-check:before {
content: "\e645";
}
.icon-close:before {
content: "\e6dc";
}
.icon-circle:before {
content: "\e66f";
}
.icon-xunhuan:before {
content: "\e6a9";
}
.icon-baocun:before {
content: "\ec09";
}
.icon-shangchuan:before {
content: "\e621";
}
Binary file not shown.
-38
View File
@@ -6,44 +6,6 @@
height: 100%;
}
/* switch的样式 */
.top-wrapper {
width: 100%;
height: 1.11rem;
background: #FFFFFF;
display: flex;
align-items: center;
}
.table-operator-tab {
width: 4.2rem;
height: 0.68rem;
line-height: 0.68rem;
margin: 0 auto;
background-color: #FFFFFF;
border-radius: 0.4rem 0.4rem 0.4rem 0.4rem;
border: 0.01rem solid @primary-color;
overflow: hidden;
display: flex;
}
.table-operator-tab a {
display: flex;
justify-content: center;
align-items: center;
width: 2.1rem;
height: 0.68rem;
color: #1D2129;
font-size: 0.28rem;
}
.table-operator-tab a.table-operator-tab-active {
background-color: @primary-color;
color: #FFFFFF;
}
/* switch的样式--end */
/*底部按钮的公共样式*/
.operation-common-btn {
width: 2.19rem;
+89
View File
@@ -0,0 +1,89 @@
<!-- form表单中日历样式的组件-->
<template>
<div>
<van-field
readonly
clickable
name="calendar"
:value="value"
v-bind="$attrs"
v-on="childListeners"
@click="clickField"
/>
<van-calendar
color="#3074F6"
v-model="showCalendar"
:min-date="minDate"
:max-date="maxDate"
@confirm="onConfirm"
/>
</div>
</template>
<script>
export default {
name: 'CalendarField',
props: {
// 可选择的最小日期--不知道为什么没有起作用
minDate: {
// type: [Date, String],
required: false,
default: () => {
return new Date(2020, 0, 1)
}
},
// 可选择的最大日期--不知道为什么没有起作用
maxDate: {
type: [Date, String],
required: false,
default: () => {
return new Date(2030, 12, 31)
}
},
value: {
type: [String, Number, Object],
required: false
},
readonly: {
type: Boolean,
required: false,
default: false
}
},
data () {
return {
showCalendar: false
}
},
computed: {
// 透传给下级组件的事件,需要排除本组件使用的change事件
childListeners () {
// const vm = this
const result = Object.assign({},
this.$listeners
)
delete result.change
return result
}
},
methods: {
onConfirm (date) {
console.log('-date-----------', date)
const value = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`
this.$emit('change', value)
this.showCalendar = false
},
clickField () {
if (this.readonly) {
return
}
this.showCalendar = true
}
},
model: {
prop: 'value',
event: 'change'
}
}
</script>
+87 -2
View File
@@ -22,7 +22,20 @@
<slot name="process"></slot>
</div>
<!--人员信息可以不用单独封组件了放在这里就行-->
<div class="process-container" v-show="activeTab === 'person'">人员信息</div>
<div class="process-container" v-show="activeTab === 'person'">
<van-steps direction="vertical">
<van-step v-for="item in personnelInfoData" :key="item.id">
<template #active-icon>
<van-icon class="iconfont" class-prefix="icon" name="circle" />
</template>
<template #inactive-icon>
<van-icon class="iconfont" class-prefix="icon" name="circle" />
</template>
<h3>{{ item.nodeName }}</h3>
<p>{{ item.linkUserIds_dictText }}</p>
</van-step>
</van-steps>
</div>
<!--底部操作按钮-->
<div class="operate-box">
@@ -32,6 +45,8 @@
</template>
<script>
import { getPersonInfoList } from '@/api/api'
export default {
name: 'ProcessCommonLayout',
props: {
@@ -40,13 +55,23 @@ export default {
type: Boolean,
required: false,
default: false
},
// 流程key
processKey: {
type: String,
required: false,
default: ''
}
},
data () {
return {
activeTab: 'basic'
activeTab: 'basic',
personnelInfoData: [] // 人员信息列表
}
},
mounted () {
this.getPersonInfoStructure()
},
methods: {
/**
* 切换标签页
@@ -54,6 +79,24 @@ export default {
*/
handleActiveTab (key) {
this.activeTab = key
},
/**
* 获取人员信息列表数据
* @param key
*/
getPersonInfoStructure () {
const param = {}
param.processDefinitionKey = this.processKey
if (this.$route.query.processInstanceId) {
param.processInstanceId = this.$route.query.processInstanceId
}
getPersonInfoList(param).then(res => {
if (res.success) {
console.log(res.result)
// 处理人员信息数据,判断每个节点是否能选人
this.personnelInfoData = res.result
}
})
}
}
}
@@ -113,4 +156,46 @@ export default {
align-items: center;
background-color: rgba(0, 0, 0, 0.3);
}
/deep/ .van-steps {
padding: 0 0.32rem 0 0.88rem;
.van-step__title {
h3 {
font-size: 0.28rem;
color: rgba(29, 33, 41, 0.9);
line-height: 0.33rem;
margin: 0 0 0.16rem 0;
font-weight: 400;
}
p {
background: #F2F3F5;
border-radius: 0.04rem 0.04rem 0.04rem 0.04rem;
margin: 0;
padding: 0.26rem 0.21rem;
color: #1D2129;
}
}
.van-step__circle-container {
left: -0.44rem;
color: @primary-color;
}
.van-step__line {
width: 0.03rem;
height: calc(100% - 0.24rem);
left: -0.46rem !important;
top: 0.47rem;
background: linear-gradient(to top,transparent 0%,transparent 50%,#ccc 50%,#ccc 100%);
background-size: 0.03rem 0.2rem;
background-repeat: repeat-y;
//border: 1px dashed #BABABA;
}
.van-step:last-child {
.van-step__line {
display: none;
}
}
.van-step--vertical:not(:last-child)::after {
display: none;
}
}
</style>
-11
View File
@@ -73,14 +73,3 @@ export const ProcessKey = {
// 企标稽查整改
ES_INSPECTION_RECTIFICATION: { text: 'inspect_plan', value: 'inspect_process' }
}
// 标准法规入库/变更流程
export const FGEntryChangeProcessNode = new EsEnums({
initiate: { text: '法规工程师发起', value: 'Activity_16zkjpn', btn: ['save', 'submit'], disabled: false },
approve: {
text: '法规工程师主管级领导审批',
value: 'Activity_084um6e',
btn: ['return', 'save', 'agree', 'reject'],
disabled: true
}
})
+1
View File
@@ -13,6 +13,7 @@ import LangENUS from './common/lang/en-us'
import LangZHCN from './common/lang/zh-cn'
import { ACCESS_TOKEN, USER_INFO } from '@/store/mutation-types'
import './permission'
import './assets/font/iconfont.css'
Vue.config.productionTip = false
+4 -1
View File
@@ -11,7 +11,10 @@ export default {
methods: {
goEnterpriseStandardInitChange () {
this.$router.push({
path: '/workCenter/enterpriseStandardInitChange'
path: '/workCenter/enterpriseStandardInitChange',
query: {
processInstanceId: '392773'
}
})
}
}
@@ -1,18 +1,9 @@
<template>
<div class="content-wrapper">
<div class="top-wrapper">
<div class="table-operator-tab">
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
@click="switchChange('base')">{{ $t('basicInformation') }}
</a>
<a class="switch-item" :class="switchValue === 'user' ? 'table-operator-tab-active' : ''"
@click="switchChange('user')">{{ $t('personalInformation') }}
</a>
</div>
</div>
<van-collapse v-model="activeNames">
<!-- 流程信息 -->
<van-collapse-item :title="$t('processInformation')" name="processInformation">
<process-common-layout class="page-box" :processKey="ProcessKey.ES_INIT_CHANGE.value">
<template v-slot:process>
<!-- 流程信息 -->
<div class="process-part">
<div class="process-part-title">{{ $t('processInformation') }}</div>
<van-form
@failed="onFailed"
@submit="onSubmit"
@@ -29,40 +20,40 @@
maxLength="50"
v-model="processInfoForm.prcName" />
<!-- 截止日期 -->
<!-- <van-datetime-picker-->
<!-- :label="$t('expirationDate')"-->
<!-- v-model="processInfoForm.dueTime"-->
<!-- type="date"-->
<!-- readonly-->
<!-- />-->
<calendar-field
:label="$t('expirationDate')"
v-model="processInfoForm.dueTime"
type="date"
readonly
/>
</van-form>
</van-collapse-item>
<!-- 业务基本信息 -->
<van-collapse-item :title="$t('basicServiceInformation')" name="basicServiceInformation">
{{ $t('basicServiceInformation') }}
</van-collapse-item>
<!-- 审批意见 -->
<van-collapse-item :title="$t('processApprovalInformation')" name="processApprovalInformation" :is-link="false" disabled>
{{ $t('processApprovalInformation') }}
</van-collapse-item>
</van-collapse>
</div>
</div>
<!-- 业务基本信息 -->
<div class="process-part">
<div class="process-part-title">{{ $t('basicServiceInformation') }}</div>
</div>
<!-- 审批意见 -->
<div class="process-part">
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
</div>
</template>
</process-common-layout>
</template>
<script>
import { WorkCenterMixin } from '@/mixins/WorkCenterMixin'
import ProcessCommonLayout from '@/components/ProcessCommonLayout'
import { ProcessKey } from '@/enums/commonEnums'
import CalendarField from '@/components/CalendarField'
export default {
name: 'EnterpriseStandardInitChange',
mixins: [WorkCenterMixin],
components: {
ProcessCommonLayout,
CalendarField
},
data () {
return {
// 最外层折叠面板当前展开
activeNames: [
'processInformation',
'basicServiceInformation',
'processApprovalInformation'
],
ProcessKey,
readonly: false,
processInfoForm: {} // 流程信息表单
}
@@ -76,13 +67,6 @@ export default {
<style scoped lang="less">
@import '~@assets/less/common.less';
.content-wrapper {
height: 100%;
display: flex;
flex-direction: column;
gap: 0.16rem;
}
/deep/ .van-collapse-item__title--disabled {
color: #323233;
}