Compare commits

..

3 Commits

Author SHA1 Message Date
123
a78304745c 提交 2025-06-04 15:52:15 +08:00
123
32286efe79 Merge branch 'test' of http://47.121.30.27:3000/admin/lx-admin-frontend into test 2025-06-04 15:52:06 +08:00
123
a1123251ae 提交 2025-06-04 15:49:40 +08:00
2 changed files with 119 additions and 4 deletions

View File

@ -24,6 +24,21 @@ export interface ContractInfoVO {
*/
remark: string;
/**
*
*/
manageContractLevel?: string;
/**
*
*/
contractManagerId?: string;
/**
*
*/
contractManager?: string;
}
export interface ContractInfoForm extends BaseEntity {
@ -52,6 +67,21 @@ export interface ContractInfoForm extends BaseEntity {
*/
remark?: string;
/**
*
*/
manageContractLevel?: string;
/**
* id
*/
contractManagerId?: string;
/**
*
*/
contractManager?: string;
}
export interface ContractInfoQuery extends PageQuery {

View File

@ -43,7 +43,7 @@
<!-- <el-table-column label="" align="center" prop="id" v-if="true" />-->
<el-table-column label="合同编码" align="center" prop="contractCode" fixed="left"/>
<el-table-column label="合同名称" align="center" prop="contractName" width="300" fixed="left"/>
<el-table-column label="合同负责人" align="center" prop="contractCode" />
<el-table-column label="合同负责人" align="center" prop="contractManager" />
<el-table-column label="重要性" align="center" prop="contractLevel" >
<template #default="scope">
<dict-tag :options="manage_contract_level" :value="scope.row.contractLevel" />
@ -97,6 +97,18 @@
<el-select v-model="form.manageContractLevel" placeholder="请选择">
<el-option v-for="dict in manage_contract_level" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="合同重要性" prop="manageContractLevel">
<el-select v-model="form.manageContractLevel" placeholder="请选择">
<el-option v-for="dict in manage_contract_level" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="合同负责人" prop="contractManagerId">
<el-button type="primary" icon="Plus" circle @click="openUserSelect" />
<el-tag v-for="user in selectUserList" :key="user.userId" closable style="margin: 2px"
@close="handleCloseTag(user)">
{{ user.employeeName }}
</el-tag>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
@ -108,6 +120,8 @@
<el-button @click="cancel"> </el-button>
</div>
</template>
<UserSelect ref="userSelectRef" :multiple="false" :data="selectUserIds" @confirm-call-back="userSelectCallBack">
</UserSelect>
</el-dialog>
</div>
</template>
@ -115,7 +129,8 @@
<script setup name="ContractInfo" lang="ts">
import { listContractInfo, getContractInfo, delContractInfo, addContractInfo, updateContractInfo } from '@/api/manage/contract';
import { ContractInfoVO, ContractInfoQuery, ContractInfoForm } from '@/api/manage/contract/types';
import UserSelect from '@/components/UserSelect/index.vue';
import { UserVO } from '@/api/system/user/types';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const contractInfoList = ref<ContractInfoVO[]>([]);
@ -129,7 +144,12 @@ const total = ref(0);
const queryFormRef = ref<ElFormInstance>();
const contractInfoFormRef = ref<ElFormInstance>();
const userFormRef = ref<ElFormInstance>();
//user
const selectUserList = ref<UserVO[]>([]);
//userid
const selectUserIds = ref<string>(undefined);
const userSelectRef = ref<InstanceType<typeof UserSelect>>();
const dialog = reactive<DialogOption>({
visible: false,
title: ''
@ -162,7 +182,6 @@ const data = reactive<PageData<ContractInfoForm, ContractInfoQuery>>({
const { queryParams, form, rules } = toRefs(data);
const { manage_contract_type,manage_contract_level } = toRefs<any>(proxy?.useDict('manage_contract_type','manage_contract_level'));
/** 查询合同信息列表 */
const getList = async () => {
loading.value = true;
@ -218,6 +237,32 @@ const handleUpdate = async (row?: ContractInfoVO) => {
Object.assign(form.value, res.data);
dialog.visible = true;
dialog.title = "修改合同信息";
console.log(row)
const newUser: UserVO = {
userId: form.value.contractManagerId,
employeeName: form.value.contractManager,
tenantId: undefined,
deptId: undefined,
userName: undefined,
nickName: undefined,
userType: undefined,
email: undefined,
phonenumber: undefined,
sex: undefined,
avatar: undefined,
status: undefined,
delFlag: undefined,
loginIp: undefined,
loginDate: undefined,
remark: undefined,
deptName: undefined,
roles: undefined,
roleIds: undefined,
postIds: undefined,
roleId: undefined,
admin: undefined
};
selectUserList.value[0] = newUser;
}
/** 提交按钮 */
@ -253,6 +298,46 @@ const handleExport = () => {
}, `contractInfo_${new Date().getTime()}.xlsx`)
}
//
const openUserSelect = () => {
if (userSelectRef.value) {
userSelectRef.value.open();
// UserSelect data 使
userSelectRef.value.$el.querySelector('input')?.focus(); //
console.log('selectUserList')
console.log(selectUserList)
if (selectUserList.value.length !== 0) {
console.log('selectUserList不为空')
selectUserIds.value = selectUserList.value.map((item) => item.userId).join(',');
}else{
selectUserIds.value = undefined;
}
}
};
//
const userSelectCallBack = (data: UserVO[]) => {
if (data && data.length > 0) {
selectUserList.value = data;
selectUserIds.value = data[0].userId.toString();
// ID
form.value.contractManagerId = selectUserIds.value; //
} else {
selectUserList.value = [];
selectUserIds.value = '';
form.value.contractManagerId = ''; //
}
};
//
const handleCloseTag = (user: UserVO) => {
const userId = user.userId;
// 使split
const index = selectUserList.value.findIndex((item) => item.userId === userId);
selectUserList.value.splice(index, 1);
selectUserIds.value = selectUserList.value.map((item) => item.userId).join(',');
};
onMounted(() => {
getList();
});