Commit 32722b0a47690cf5200b4af84259e7e4cea592eb

Authored by wuxw
1 parent 27918d40

v1.9 优化办公和合同测试 部分页面优化

src/api/system/workflowManageApi.js
... ... @@ -35,7 +35,7 @@ export function listWorkflowImage(params) {
35 35 }
36 36 }).then(response => {
37 37 const res = response.data
38   - if (res.code !== '0') {
  38 + if (res.code != 0) {
39 39 reject(new Error(res.msg))
40 40 return
41 41 }
... ...
src/components/contract/ContractChangeMainBody.vue
1 1 <template>
2 2 <el-card class="box-card">
3   - <div slot="header" class="clearfix">
  3 + <div slot="header" class="flex justify-between">
4 4 <span>{{ $t('contractChangeMainBody.title') }}</span>
5 5 </div>
6 6 <el-form label-width="120px">
... ...
src/i18n/contractI18n.js
... ... @@ -14,6 +14,7 @@ import { messages as contractApplyAuditOrdersMessages } from &#39;../views/contract/
14 14 import { messages as contractChangeAuditOrdersMessages } from '../views/contract/contractChangeAuditOrdersLang.js'
15 15 import { messages as contractApplyAuditHistoryOrdersMessages } from '../views/contract/contractApplyAuditHistoryOrdersLang'
16 16 import { messages as contractChangeAuditHistoryOrdersMessages } from '../views/contract/contractChangeAuditHistoryOrdersLang'
  17 +import { messages as contractDetailChangeMessages } from '../views/contract/contractDetailChangeLang'
17 18  
18 19 export const messages ={
19 20 en:{
... ... @@ -33,6 +34,7 @@ export const messages ={
33 34 ...contractChangeAuditOrdersMessages.en,
34 35 ...contractApplyAuditHistoryOrdersMessages.en,
35 36 ...contractChangeAuditHistoryOrdersMessages.en,
  37 + ...contractDetailChangeMessages.en,
36 38 },
37 39 zh:{
38 40 ...contractTypeManageMessages.zh,
... ... @@ -51,5 +53,6 @@ export const messages ={
51 53 ...contractChangeAuditOrdersMessages.zh,
52 54 ...contractApplyAuditHistoryOrdersMessages.zh,
53 55 ...contractChangeAuditHistoryOrdersMessages.zh,
  56 + ...contractDetailChangeMessages.zh,
54 57 }
55 58 }
56 59 \ No newline at end of file
... ...
src/views/contract/contractDetail.vue
... ... @@ -243,7 +243,7 @@ export default {
243 243 },
244 244 _printContract() {
245 245 const contract = this.contractDetailInfo
246   - window.open(`/#/pages/admin/printContract?contractTypeId=${contract.contractType}&contractId=${contract.contractId}`)
  246 + window.open(`/#/views/contract/printContract?contractTypeId=${contract.contractType}&contractId=${contract.contractId}`)
247 247 }
248 248 }
249 249 }
... ...
src/views/contract/contractDetailChangeLang.js
... ... @@ -4,13 +4,19 @@ export const messages = {
4 4 contractName: 'Contract Name',
5 5 contractCode: 'Contract Code',
6 6 contractType: 'Contract Type',
  7 + contractTypeName: 'Contract Type',
7 8 partyA: 'Party A',
8 9 partyB: 'Party B',
9 10 changeType: 'Change Type',
  11 + planTypeName: 'Change Type',
10 12 changePerson: 'Change Person',
  13 + changePersonName: 'Change Person',
11 14 applyTime: 'Apply Time',
  15 + createTime: 'Create Time',
12 16 description: 'Description',
  17 + remark: 'Description',
13 18 status: 'Status',
  19 + stateName: 'Status',
14 20 operation: 'Operation',
15 21 detail: 'Detail'
16 22 }
... ... @@ -20,13 +26,19 @@ export const messages = {
20 26 contractName: '合同名称',
21 27 contractCode: '合同编号',
22 28 contractType: '合同类型',
  29 + contractTypeName: '合同类型',
23 30 partyA: '甲方',
24 31 partyB: '乙方',
25 32 changeType: '变更类型',
  33 + planTypeName: '变更类型',
26 34 changePerson: '变更人',
  35 + changePersonName: '变更人',
27 36 applyTime: '申请时间',
  37 + createTime: '申请时间',
28 38 description: '说明',
  39 + remark: '说明',
29 40 status: '状态',
  41 + stateName: '状态',
30 42 operation: '操作',
31 43 detail: '明细'
32 44 }
... ...
src/views/contract/expirationContractManageList.vue
... ... @@ -156,7 +156,7 @@ export default {
156 156 },
157 157 handleRenew(row) {
158 158 this.$router.push({
159   - path: '/pages/admin/addContract',
  159 + path: '/views/contract/addContract',
160 160 query: {
161 161 contractId: row.contractId,
162 162 contractCode: row.contractCode,
... ...
src/views/oa/editExamineStaffList.vue
... ... @@ -171,10 +171,11 @@ export default {
171 171 this.editExamineStaffInfo.projectIds = data[0].projects.map(item => item.projectId)
172 172  
173 173 if (this.editExamineStaffInfo.headerImg) {
174   - this.$refs.uploadImage.open([this.editExamineStaffInfo.headerImg])
  174 + this.$refs.uploadImage.setImages([this.editExamineStaffInfo.headerImg])
175 175 }
176 176 }
177 177 } catch (error) {
  178 + console.error('请求失败:', error)
178 179 this.$message.error(this.$t('editExamineStaff.fetchStaffError'))
179 180 }
180 181 },
... ...
src/views/oa/printOwnerVotingList.vue
1 1 <template>
2 2 <div class="print-owner-voting-container">
3   - <el-row>
4   - <el-col :span="24">
5   - <div class="text-center">
6   - <h1>{{ printOwnerVotingInfo.qaName }}</h1>
7   - </div>
8   - </el-col>
9   - </el-row>
10   -
11   - <el-row>
12   - <el-col :span="24">
13   - <div v-html="printOwnerVotingInfo.content"></div>
14   - </el-col>
15   - </el-row>
16   -
17   - <el-row>
18   - <el-col :span="24">
19   - <table class="table vc-table-border margin-top" style="color:#000;font-size:14px">
20   - <thead>
21   - <tr>
22   - <th class="text-center" width="200px">
23   - <div style="max-width: 200px;">
24   - {{ $t('printOwnerVoting.room') }}
25   - </div>
26   - </th>
27   - <th v-for="(item, index) in printOwnerVotingInfo.titleValues" :key="index" scope="col"
28   - class="text-center">
29   - {{ item.qaValue }}
30   - </th>
31   - <th width="200px" class="text-center">
32   - <div style="max-width: 200px;">
33   - {{ $t('printOwnerVoting.room') }}
34   - </div>
35   - </th>
36   - <th v-for="(item, index) in printOwnerVotingInfo.titleValues" :key="index" scope="col"
37   - class="text-center">
38   - {{ item.qaValue }}
39   - </th>
40   - </tr>
41   - </thead>
42   - <tbody>
43   - <template v-for="(vote, index) in printOwnerVotingInfo.userVotes">
44   - <tr :key="index" class="vc-table-border" v-if="index % 2 == 0">
45   - <td class="text-center">
46   - <div style="max-width: 200px;">{{ vote.roomName }}</div>
47   - </td>
48   - <td v-for="(item, tIndex) in printOwnerVotingInfo.titleValues" :key="tIndex" class="text-center">
49   - {{ vote[item.qaValue] }}
50   - </td>
51   - <td class="text-center">
52   - <div style="max-width: 200px;" v-if="printOwnerVotingInfo.userVotes.length > index">
53   - {{ printOwnerVotingInfo.userVotes[index + 1].roomName }}
54   - </div>
55   - </td>
56   - <td v-for="(item, tIndex) in printOwnerVotingInfo.titleValues" :key="tIndex" class="text-center">
57   - <div v-if="printOwnerVotingInfo.userVotes.length > index">
58   - {{ printOwnerVotingInfo.userVotes[index + 1][item.qaValue] }}
59   - </div>
60   - </td>
61   - </tr>
62   - </template>
63   - </tbody>
64   - </table>
65   - </el-col>
66   - </el-row>
67   -
68   - <el-row>
69   - <el-col :span="24">
70   - <span>{{ $t('printOwnerVoting.totalVotes') }}:{{ printOwnerVotingInfo.voteCount }}</span>;
71   - <span>{{ $t('printOwnerVoting.votedCount') }}:{{ printOwnerVotingInfo.votedCount }}</span>;
72   - <span v-for="(item, tIndex) in printOwnerVotingInfo.titleValues" :key="tIndex">
73   - {{ item.qaValue }}: {{ item.personCount }}{{ $t('printOwnerVoting.person') }};
74   - </span>
75   - </el-col>
76   - </el-row>
77   -
78   - <el-row>
79   - <el-col :span="24" class="text-right margin-top margin-right">
80   - {{ currentCommunity.name }}
81   - </el-col>
82   - </el-row>
83   -
84   - <el-row>
85   - <el-col :span="24" class="text-right margin-top-sm margin-right">
86   - {{ formatDate(new Date()) }}
87   - </el-col>
88   - </el-row>
89   -
90   - <el-row id="print-btn">
91   - <el-col :span="24" class="text-right">
92   - <el-button type="primary" @click="_printPurchaseApplyDiv">
93   - <i class="el-icon-printer"></i>&nbsp;{{ $t('common.print') }}
94   - </el-button>
95   - <el-button type="warning" style="margin-right:20px;" @click="_closePage">
96   - {{ $t('common.cancel') }}
97   - </el-button>
98   - </el-col>
99   - </el-row>
  3 + <div class="text-center">
  4 + <h1>{{ printOwnerVotingInfo.qaName }}</h1>
  5 + </div>
100 6  
  7 + <div class="text-left">
  8 + <div v-html="printOwnerVotingInfo.content"></div>
  9 + </div>
  10 +
  11 + <div>
  12 + <table class="table vc-table-border margin-top" style="color:#000;font-size:14px;width: 100%;">
  13 + <thead>
  14 + <tr>
  15 + <th class="text-center" >
  16 + <div class="text-left">
  17 + {{ $t('printOwnerVoting.room') }}
  18 + </div>
  19 + </th>
  20 + <th
  21 + v-for="(item, index) in printOwnerVotingInfo.titleValues"
  22 + :key="'head-left-' + index"
  23 + scope="col"
  24 + class="text-center"
  25 + >
  26 + {{ item.qaValue }}
  27 + </th>
  28 + <th class="text-center ">
  29 + <div class="text-left">
  30 + {{ $t('printOwnerVoting.room') }}
  31 + </div>
  32 + </th>
  33 + <th
  34 + v-for="(item, index) in printOwnerVotingInfo.titleValues"
  35 + :key="'head-right-' + index"
  36 + scope="col"
  37 + class="text-center"
  38 + >
  39 + {{ item.qaValue }}
  40 + </th>
  41 + </tr>
  42 + </thead>
  43 + <tbody>
  44 + <tr
  45 + v-for="(pair, index) in pairedVotes"
  46 + :key="'row-' + index"
  47 + class="vc-table-border"
  48 + >
  49 + <td class="text-center">
  50 + <div style="max-width: 200px;">{{ pair.left ? pair.left.roomName : '' }}</div>
  51 + </td>
  52 + <td
  53 + v-for="(item, tIndex) in printOwnerVotingInfo.titleValues"
  54 + :key="'left-' + index + '-' + tIndex"
  55 + class="text-center"
  56 + >
  57 + {{ pair.left ? pair.left[item.qaValue] : '' }}
  58 + </td>
  59 + <td class="text-center">
  60 + <div style="max-width: 200px;">
  61 + {{ pair.right ? pair.right.roomName : '' }}
  62 + </div>
  63 + </td>
  64 + <td
  65 + v-for="(item, tIndex) in printOwnerVotingInfo.titleValues"
  66 + :key="'right-' + index + '-' + tIndex"
  67 + class="text-center"
  68 + >
  69 + <div v-if="pair.right">
  70 + {{ pair.right[item.qaValue] }}
  71 + </div>
  72 + </td>
  73 + </tr>
  74 + </tbody>
  75 + </table>
  76 + </div>
  77 +
  78 + <div class="summary text-left">
  79 + <span>{{ $t('printOwnerVoting.totalVotes') }}:{{ printOwnerVotingInfo.voteCount }}</span>;
  80 + <span>{{ $t('printOwnerVoting.votedCount') }}:{{ printOwnerVotingInfo.votedCount }}</span>;
  81 + <span v-for="(item, tIndex) in printOwnerVotingInfo.titleValues" :key="'summary-' + tIndex">
  82 + {{ item.qaValue }}: {{ item.personCount }}{{ $t('printOwnerVoting.person') }};
  83 + </span>
  84 + </div>
  85 +
  86 + <div class="text-right margin-top margin-right">
  87 + {{ currentCommunity.name }}
  88 + </div>
  89 +
  90 + <div class="text-right margin-top-sm margin-right">
  91 + {{ formatDate(new Date()) }}
  92 + </div>
  93 +
  94 + <div id="print-btn" class="actions text-right">
  95 +
  96 + <button type="button" class="btn btn-warning float-right" style="margin-right:20px;" @click="_closePage">
  97 + {{ $t('common.cancel') }}
  98 + </button>
  99 + <button class="btn btn-primary float-right" type="button" @click="_printPurchaseApplyDiv">
  100 + <i class="fa fa-check"></i>&nbsp;{{ $t('common.print') }}
  101 + </button>
  102 + </div>
101 103 </div>
102 104 </template>
103 105  
... ... @@ -124,6 +126,19 @@ export default {
124 126 }
125 127 }
126 128 },
  129 + computed: {
  130 + pairedVotes() {
  131 + const votes = this.printOwnerVotingInfo.userVotes || []
  132 + const result = []
  133 + for (let i = 0; i < votes.length; i += 2) {
  134 + result.push({
  135 + left: votes[i] || null,
  136 + right: votes[i + 1] || null
  137 + })
  138 + }
  139 + return result
  140 + }
  141 + },
127 142 created() {
128 143 this.printOwnerVotingInfo.qaId = this.$route.query.qaId
129 144 this.currentCommunity.communityId = getCommunityId()
... ... @@ -139,7 +154,8 @@ export default {
139 154 qaId: this.printOwnerVotingInfo.qaId
140 155 }
141 156 const { data } = await listOwnerVote(params)
142   - this.printOwnerVotingInfo = data[0]
  157 + //this.printOwnerVotingInfo = data[0]
  158 + Object.assign(this.printOwnerVotingInfo, data[0])
143 159 this._listValues()
144 160 } catch (error) {
145 161 console.error('请求失败:', error)
... ... @@ -155,6 +171,7 @@ export default {
155 171 }
156 172 const { data } = await listUserQuestionAnswer(params)
157 173 const _titleValues = this.printOwnerVotingInfo.titleValues
  174 + console.log(data, '_titleValues', _titleValues)
158 175 data.forEach(_value => {
159 176 _titleValues.forEach(_title => {
160 177 _value[_title.qaValue] = ''
... ... @@ -196,6 +213,35 @@ export default {
196 213 .print-owner-voting-container {
197 214 padding: 20px;
198 215  
  216 + .btn {
  217 + display: inline-flex;
  218 + align-items: center;
  219 + justify-content: center;
  220 + padding: 6px 15px;
  221 + border-radius: 4px;
  222 + border: 1px solid transparent;
  223 + cursor: pointer;
  224 + font-size: 14px;
  225 + line-height: 1.5;
  226 + transition: all 0.2s;
  227 + }
  228 +
  229 + .btn-primary {
  230 + background-color: #409eff;
  231 + border-color: #409eff;
  232 + color: #fff;
  233 + }
  234 +
  235 + .btn-warning {
  236 + background-color: #e6a23c;
  237 + border-color: #e6a23c;
  238 + color: #fff;
  239 + }
  240 +
  241 + .btn:hover {
  242 + opacity: 0.85;
  243 + }
  244 +
199 245 .margin-top {
200 246 margin-top: 20px;
201 247 }
... ... @@ -217,12 +263,12 @@ export default {
217 263 }
218 264  
219 265 .vc-table-border {
220   - border: 1px solid #ebeef5;
  266 + border: 1px solid #000000;
221 267 border-collapse: collapse;
222 268  
223 269 th,
224 270 td {
225   - border: 1px solid #ebeef5;
  271 + border: 1px solid #000000;
226 272 padding: 8px;
227 273 }
228 274 }
... ...
src/views/oa/visitManageList.vue
... ... @@ -242,7 +242,7 @@ export default {
242 242 row: 100,
243 243 communityId: this.communityId
244 244 })
245   - this.visitTypeList = [{ name: this.$t('visitManage.visitType'), typeId: '' }, ...data]
  245 + this.visitTypeList = [{ name: this.$t('common.all'), typeId: '' }, ...data]
246 246 } catch (error) {
247 247 console.error('获取访客类型失败:', error)
248 248 }
... ... @@ -305,7 +305,6 @@ export default {
305 305 padding: 10px;
306 306 cursor: pointer;
307 307 text-align: center;
308   - border-bottom: 1px solid #eee;
309 308 transition: all 0.3s;
310 309  
311 310 &:hover {
... ...
src/views/system/operateDataLogLang.js
... ... @@ -69,20 +69,7 @@ export const messages = {
69 69 modifyOld: 'modify(old)'
70 70 },
71 71  
72   - contractDetailChange: {
73   - contractName: 'contract name',
74   - contractCode: 'contract code',
75   - contractTypeName: 'contract type',
76   - partyA: 'party A',
77   - partyB: 'party B',
78   - planTypeName: 'change type',
79   - changePersonName: 'change person',
80   - createTime: 'create time',
81   - remark: 'remark',
82   - stateName: 'state',
83   - operation: 'operation',
84   - detail: 'detail'
85   - }
  72 +
86 73 },
87 74 zh: {
88 75 operateDataLog: {
... ... @@ -154,19 +141,6 @@ export const messages = {
154 141 modifyOld: '修改(旧)'
155 142 },
156 143  
157   - contractDetailChange: {
158   - contractName: '合同名称',
159   - contractCode: '合同编号',
160   - contractTypeName: '合同类型',
161   - partyA: '甲方',
162   - partyB: '乙方',
163   - planTypeName: '变更类型',
164   - changePersonName: '变更人',
165   - createTime: '申请时间',
166   - remark: '说明',
167   - stateName: '状态',
168   - operation: '操作',
169   - detail: '明细'
170   - }
  144 +
171 145 },
172 146 }
173 147 \ No newline at end of file
... ...
src/views/system/workflowManageList.vue
... ... @@ -162,6 +162,7 @@ export default {
162 162 url: 'data:image/png;base64,' + data
163 163 })
164 164 } catch (error) {
  165 + console.error('获取流程图片失败:', error)
165 166 this.$message.error(this.$t('workflowManage.imageError'))
166 167 }
167 168 },
... ...
src/views/system/workflowSettingManageList.vue
... ... @@ -26,7 +26,7 @@
26 26 </el-form-item>
27 27  
28 28 <el-form-item :label="$t('workflowSettingManage.flowSteps')">
29   - <div class="step-actions">
  29 + <div class="step-actions margin-bottom">
30 30 <el-button type="primary" @click="addWorkflowStep">
31 31 {{ $t('workflowSettingManage.addStep') }}
32 32 </el-button>
... ... @@ -40,12 +40,28 @@
40 40 {{ item.staffId ? item.staffName : $t('workflowSettingManage.selectStaff') }}
41 41 </el-button>
42 42  
43   - <el-radio-group v-model="item.type" @change="chooseType(item)">
44   - <el-radio :label="2">{{ $t('workflowSettingManage.normalFlow') }}</el-radio>
45   - <el-radio v-if="index !== 0" :label="1">
46   - {{ $t('workflowSettingManage.countersign') }}
47   - </el-radio>
48   - </el-radio-group>
  43 + <div class="radio-group">
  44 + <label class="radio-item">
  45 + <input
  46 + type="radio"
  47 + :name="`step-type-${index}`"
  48 + value="2"
  49 + v-model="item.type"
  50 + @change="chooseType(item)"
  51 + />
  52 + <span>{{ $t('workflowSettingManage.normalFlow') }}</span>
  53 + </label>
  54 + <label class="radio-item" v-if="index !== 0">
  55 + <input
  56 + type="radio"
  57 + :name="`step-type-${index}`"
  58 + value="1"
  59 + v-model="item.type"
  60 + @change="chooseType(item)"
  61 + />
  62 + <span>{{ $t('workflowSettingManage.countersign') }}</span>
  63 + </label>
  64 + </div>
49 65  
50 66 <el-button type="text" @click="deleteStep(item)">
51 67 {{ $t('workflowSettingManage.deleteStep') }}
... ... @@ -98,7 +114,7 @@
98 114 </el-col>
99 115 </el-row>
100 116  
101   - <select-staff ref="selectStaff" @selectStaffs="handleStaffSelected"/>
  117 + <select-staff ref="selectStaff" @selectStaff="handleStaffSelected"/>
102 118 </div>
103 119 </template>
104 120  
... ... @@ -125,7 +141,8 @@ export default {
125 141 describle: '',
126 142 startNodeFinish: 'Y',
127 143 steps: []
128   - }
  144 + },
  145 + currentSelectTarget: null
129 146 }
130 147 },
131 148 created() {
... ... @@ -133,6 +150,10 @@ export default {
133 150 this._initWorkflowSettingInfo()
134 151 },
135 152 methods: {
  153 + generateId() {
  154 + return `id-${Date.now()}-${Math.random().toString(36).substr(2, 6)}`
  155 + },
  156 +
136 157 async _initWorkflowSettingInfo() {
137 158 const flowId = this.$route.query.flowId
138 159  
... ... @@ -159,8 +180,39 @@ export default {
159 180 },
160 181  
161 182 _freshResStep(data) {
162   - // 处理步骤数据的逻辑
163   - console.log(data)
  183 + if (!data) {
  184 + this.workflowSettingInfo.steps = []
  185 + return
  186 + }
  187 +
  188 + this.workflowSettingInfo.describle = data.describle || ''
  189 + if (data.startNodeFinish) {
  190 + this.workflowSettingInfo.startNodeFinish = data.startNodeFinish
  191 + }
  192 +
  193 + const workflowSteps = Array.isArray(data.workflowSteps) ? data.workflowSteps : []
  194 + const steps = workflowSteps.map((step, index) => {
  195 + const staffList = Array.isArray(step.workflowStepStaffs) ? step.workflowStepStaffs : []
  196 + const mainStaff = staffList[0] || {}
  197 +
  198 + const subStaff = staffList.slice(1).map(staff => ({
  199 + id: staff.id || this.generateId(),
  200 + staffId: staff.staffId || staff.userId || '',
  201 + staffName: staff.staffName || staff.userName || staff.name || '',
  202 + staffRole: staff.staffRole || ''
  203 + }))
  204 +
  205 + return {
  206 + seq: index,
  207 + staffId: mainStaff.staffId || mainStaff.userId || '',
  208 + staffName: mainStaff.staffName || mainStaff.userName || mainStaff.name || '',
  209 + staffRole: mainStaff.staffRole || '',
  210 + type: String(step.type || '2'),
  211 + subStaff
  212 + }
  213 + })
  214 +
  215 + this.workflowSettingInfo.steps = steps
164 216 },
165 217  
166 218 addWorkflowStep() {
... ... @@ -176,11 +228,19 @@ export default {
176 228  
177 229 chooseStaff(item) {
178 230 item.from = this._getStaffFromType()
179   - this.$refs.selectStaff.open(item)
  231 + this.currentSelectTarget = item
  232 + this.$refs.selectStaff.open()
180 233 },
181 234  
182 235 _getStaffFromType() {
183   - // 根据flowType返回对应的from值
  236 + const type = this.workflowSettingInfo.flowType
  237 + if (['30003', '40004', '70007', '80008'].includes(type)) {
  238 + return 'purchase'
  239 + }
  240 + if (['50005', '60006'].includes(type)) {
  241 + return 'contract'
  242 + }
  243 + return ''
184 244 },
185 245  
186 246 _goBack() {
... ... @@ -195,7 +255,7 @@ export default {
195 255  
196 256 addStaff(step) {
197 257 step.subStaff.push({
198   - id: this.$uuid(),
  258 + id: this.generateId(),
199 259 staffId: '',
200 260 staffName: '',
201 261 staffRole: '1001'
... ... @@ -212,8 +272,17 @@ export default {
212 272 }
213 273 },
214 274  
215   - handleStaffSelected(staffs) {
216   - console.log(staffs)
  275 + handleStaffSelected(staff) {
  276 + if (!this.currentSelectTarget) {
  277 + return
  278 + }
  279 + const target = this.currentSelectTarget
  280 + this.$set(target, 'staffId', staff.staffId || staff.userId || '')
  281 + this.$set(target, 'staffName', staff.staffName || staff.userName || staff.name || '')
  282 + if (staff.staffRole) {
  283 + this.$set(target, 'staffRole', staff.staffRole)
  284 + }
  285 + this.currentSelectTarget = null
217 286 },
218 287  
219 288 async saveWorkflowSettingInfo() {
... ... @@ -250,6 +319,22 @@ export default {
250 319 >* {
251 320 margin-right: 15px;
252 321 }
  322 +
  323 + .radio-group {
  324 + display: inline-flex;
  325 + align-items: center;
  326 + margin-right: 15px;
  327 +
  328 + .radio-item {
  329 + display: inline-flex;
  330 + align-items: center;
  331 + margin-right: 12px;
  332 +
  333 + input {
  334 + margin-right: 4px;
  335 + }
  336 + }
  337 + }
253 338 }
254 339  
255 340 .sub-staff-item {
... ...