feat(purchase): 人员选择组件增加部门名称显示
- 履约验收采购人员/资产管理员下拉显示部门名称 - OrgSelector组件已选列表、搜索结果增加部门名称和工号显示 - 格式统一为:部门名称 - 姓名 (工号)
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
:type="item.type === 'dept' ? 'primary' : item.type === 'user' ? 'warning' : 'success'"
|
||||
size="large"
|
||||
>
|
||||
{{ item.name }}
|
||||
{{ getDisplayName(item) }}
|
||||
</el-tag>
|
||||
</div>
|
||||
</template>
|
||||
@@ -28,6 +28,16 @@ let props = defineProps({
|
||||
},
|
||||
});
|
||||
|
||||
const getDisplayName = (item) => {
|
||||
if (item.type === 'user') {
|
||||
const commonDeptName = item.commonDeptName || '';
|
||||
const realName = item.realName || item.name || '';
|
||||
const teacherNo = item.teacherNo || item.username || '';
|
||||
return commonDeptName ? `${commonDeptName} - ${realName} (${teacherNo})` : `${realName} (${teacherNo})`;
|
||||
}
|
||||
return item.name;
|
||||
};
|
||||
|
||||
const removeItem = (index, id, type) => {
|
||||
emits(
|
||||
'update:data',
|
||||
|
||||
@@ -62,7 +62,11 @@
|
||||
<div class="f11">
|
||||
<upload-img v-model:image-url="item.avatar" disabled width="20px" height="20px"/>
|
||||
</div>
|
||||
<div class="f12">{{ item.name }}</div>
|
||||
<div class="f12">
|
||||
<span v-if="item.commonDeptName">{{ item.commonDeptName }} - </span>
|
||||
<span>{{ item.realName || item.name }}</span>
|
||||
<span v-if="item.teacherNo" style="color: #999; margin-left: 4px;">({{ item.teacherNo }})</span>
|
||||
</div>
|
||||
</div>
|
||||
</el-checkbox>
|
||||
</li>
|
||||
|
||||
@@ -48,7 +48,11 @@
|
||||
<div class="f11">
|
||||
<upload-img v-model:image-url="item.avatar" disabled width="20px" height="20px" />
|
||||
</div>
|
||||
<div class="f12">{{ item.name }}</div>
|
||||
<div class="f12">
|
||||
<span v-if="item.commonDeptName">{{ item.commonDeptName }} - </span>
|
||||
<span>{{ item.realName || item.name }}</span>
|
||||
<span v-if="item.teacherNo" style="color: #999; margin-left: 4px;">({{ item.teacherNo }})</span>
|
||||
</div>
|
||||
<div class="f13">
|
||||
<el-button size="small" text @click="cancel(item)" :icon="CircleClose"></el-button>
|
||||
</div>
|
||||
|
||||
@@ -79,10 +79,10 @@
|
||||
<el-option
|
||||
v-for="item in purchaserOptions"
|
||||
:key="item.teacherNo"
|
||||
:label="item.name + ' (' + item.teacherNo + ')'"
|
||||
:label="(item.commonDeptName ? item.commonDeptName + ' - ' : '') + (item.realName || item.name) + ' (' + item.teacherNo + ')'"
|
||||
:value="item.teacherNo"
|
||||
>
|
||||
<span>{{ item.name }}</span>
|
||||
<span>{{ item.commonDeptName ? item.commonDeptName + ' - ' : '' }}{{ item.realName || item.name }}</span>
|
||||
<span style="color: #999; font-size: 12px; margin-left: 8px;">{{ item.teacherNo }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
@@ -105,10 +105,10 @@
|
||||
<el-option
|
||||
v-for="item in assetAdminOptions"
|
||||
:key="item.teacherNo"
|
||||
:label="item.name + ' (' + item.teacherNo + ')'"
|
||||
:label="(item.commonDeptName ? item.commonDeptName + ' - ' : '') + (item.realName || item.name) + ' (' + item.teacherNo + ')'"
|
||||
:value="item.teacherNo"
|
||||
>
|
||||
<span>{{ item.name }}</span>
|
||||
<span>{{ item.commonDeptName ? item.commonDeptName + ' - ' : '' }}{{ item.realName || item.name }}</span>
|
||||
<span style="color: #999; font-size: 12px; margin-left: 8px;">{{ item.teacherNo }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
@@ -180,10 +180,10 @@ const syncFormFromModel = (val: Record<string, any> | undefined) => {
|
||||
Object.assign(form, val || {})
|
||||
// 加载已选人员信息用于回显
|
||||
if (form.purchaserId && form.purchaserName) {
|
||||
purchaserOptions.value = [{ teacherNo: form.purchaserId, name: form.purchaserName }]
|
||||
purchaserOptions.value = [{ teacherNo: form.purchaserId, realName: form.purchaserName, name: form.purchaserName }]
|
||||
}
|
||||
if (form.assetAdminId && form.assetAdminName) {
|
||||
assetAdminOptions.value = [{ teacherNo: form.assetAdminId, name: form.assetAdminName }]
|
||||
assetAdminOptions.value = [{ teacherNo: form.assetAdminId, realName: form.assetAdminName, name: form.assetAdminName }]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -305,7 +305,7 @@ const onPurchaserChange = (teacherNo: string) => {
|
||||
const selected = purchaserOptions.value.find((item: any) => item.teacherNo === teacherNo)
|
||||
if (selected) {
|
||||
form.purchaserId = selected.teacherNo
|
||||
form.purchaserName = selected.name
|
||||
form.purchaserName = selected.realName || selected.name
|
||||
}
|
||||
}
|
||||
|
||||
@@ -318,7 +318,7 @@ const onAssetAdminChange = (teacherNo: string) => {
|
||||
const selected = assetAdminOptions.value.find((item: any) => item.teacherNo === teacherNo)
|
||||
if (selected) {
|
||||
form.assetAdminId = selected.teacherNo
|
||||
form.assetAdminName = selected.name
|
||||
form.assetAdminName = selected.realName || selected.name
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user