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