pull/1/head
siontion 9 months ago
commit bd8830782c

@ -23,28 +23,21 @@
<el-input v-model="formData.name" class="!w-250px" placeholder="请输入部门名称" /> <el-input v-model="formData.name" class="!w-250px" placeholder="请输入部门名称" />
</el-form-item> </el-form-item>
<el-form-item label="显示排序" prop="sort"> <el-form-item label="显示排序" prop="sort">
<el-input-number v-model="formData.sort" :min="0" controls-position="right" class="!w-250px" /> <el-input-number
v-model="formData.sort"
:min="0"
controls-position="right"
class="!w-250px"
/>
</el-form-item> </el-form-item>
<el-form-item label="负责人" prop="leaderUserId"> <el-form-item label="负责人" prop="leaderUserId">
<el-select v-model="formData.leaderUserId" <UserSelect
placeholder="请输入负责人" v-model="formData.leaderUserId"
:remote-method="remoteUserSearch" :initialUserList="parentUserList"
remote-show-suffix @update:valueName="onValueNameChange"
remote />
clearable
reserve-keyword
filterable
:loading="userSelectLoading"
>
<el-option
v-for="item in userSelectList"
:key="item.id"
:label="item.username + ' ' + item.nickname"
:value="item.id"
/>
</el-select>
</el-form-item> </el-form-item>
<!-- <el-form-item label="联系电话" prop="phone"> <!-- <el-form-item label="联系电话" prop="phone">
<el-input v-model="formData.phone" maxlength="11" placeholder="请输入联系电话" /> <el-input v-model="formData.phone" maxlength="11" placeholder="请输入联系电话" />
</el-form-item> </el-form-item>
<el-form-item label="邮箱" prop="email"> <el-form-item label="邮箱" prop="email">
@ -75,6 +68,7 @@ import * as DeptApi from '@/api/system/dept'
import * as UserApi from '@/api/system/user' import * as UserApi from '@/api/system/user'
import { CommonStatusEnum } from '@/utils/constants' import { CommonStatusEnum } from '@/utils/constants'
import { FormRules } from 'element-plus' import { FormRules } from 'element-plus'
import UserSelect from '../hlvuestyle/userSelect.vue'
defineOptions({ name: 'SystemDeptForm' }) defineOptions({ name: 'SystemDeptForm' })
@ -85,7 +79,7 @@ const dialogVisible = ref(false) // 弹窗的是否展示
const dialogTitle = ref('') // const dialogTitle = ref('') //
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formType = ref('') // create - update - const formType = ref('') // create - update -
const formData = ref({ const formData: any = ref({
id: undefined, id: undefined,
title: '', title: '',
parentId: undefined, parentId: undefined,
@ -110,7 +104,7 @@ const formRef = ref() // 表单 Ref
const deptTree = ref() // const deptTree = ref() //
const userList = ref<UserApi.UserVO[]>([]) // const userList = ref<UserApi.UserVO[]>([]) //
const userSelectList = ref<UserApi.UserVO[]>([]) const userSelectList = ref<UserApi.UserVO[]>([])
const userSelectLoading = ref(false); const userSelectLoading = ref(false)
const remoteUserSearch = (query: string) => { const remoteUserSearch = (query: string) => {
if (query) { if (query) {
@ -118,7 +112,10 @@ const remoteUserSearch = (query: string) => {
setTimeout(() => { setTimeout(() => {
userSelectLoading.value = false userSelectLoading.value = false
userSelectList.value = userList.value.filter((item) => { userSelectList.value = userList.value.filter((item) => {
return item.nickname.toLowerCase().includes(query.toLowerCase()) || item.username.toLowerCase().includes(query.toLowerCase()) return (
item.nickname.toLowerCase().includes(query.toLowerCase()) ||
item.username.toLowerCase().includes(query.toLowerCase())
)
}) })
}, 200) }, 200)
} else { } else {
@ -145,11 +142,11 @@ const open = async (type: string, id?: number) => {
let userParams = { let userParams = {
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
status: "0" status: '0'
} }
const data = await UserApi.getUserPage(userParams) const data = await UserApi.getUserPage(userParams)
userList.value = data.list; userList.value = data.list
userSelectList.value = data.list; userSelectList.value = data.list
// //
await getTree() await getTree()
} }
@ -205,4 +202,9 @@ const getTree = async () => {
dept.children = handleTree(data) dept.children = handleTree(data)
deptTree.value.push(dept) deptTree.value.push(dept)
} }
const onValueNameChange = (newValue: number | null) => {
formData.value.leaderUserId = newValue
console.log(formData.value.leaderUserId)
}
</script> </script>

@ -7,15 +7,13 @@
<tbody> <tbody>
<tr> <tr>
<td colspan="10"> <td colspan="10">
<div style="display: flex; align-items: center;justify-content: space-between"> <div style="display: flex; align-items: center; justify-content: space-between">
<img <img src="/src/assets/imgs/exlogo.png" style="width: 100px" alt="" />
src="/src/assets/imgs/exlogo.png" <span style="font-size: 20px; font-weight: 700">发货单</span>
style="width: 100px;" <span
alt="" >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span
/> >
<span style="font-size: 20px; font-weight: 700;">发货单</span> </div>
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
</div>
</td> </td>
</tr> </tr>
</tbody> </tbody>
@ -119,15 +117,13 @@
<tbody> <tbody>
<tr> <tr>
<td colspan="10"> <td colspan="10">
<div style="display: flex; align-items: center;justify-content: space-between"> <div style="display: flex; align-items: center; justify-content: space-between">
<img <img src="/src/assets/imgs/exlogo.png" style="width: 100px" alt="" />
src="/src/assets/imgs/exlogo.png" <span style="font-size: 20px; font-weight: 700">发货单</span>
style="width: 100px;" <span
alt="" >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span
/> >
<span style="font-size: 20px; font-weight: 700;">发货单</span> </div>
<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
</div>
</td> </td>
</tr> </tr>
</tbody> </tbody>
@ -216,10 +212,110 @@
</td> </td>
</tr> </tr>
</table> </table>
<div style="width: 100%; display: flex; justify-content: space-between; align-items: center"> <div
style="
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
"
>
<span>制单人{{ `` }}</span> <span>制单人{{ `` }}</span>
<span>-回单联-</span> <span>-回单联-</span>
</div> </div>
<div class="divide_line1" style="margin-top: 40px"></div>
<!-- 附件 -->
<!-- 附件需要判断 -->
<div>
<table border="2" cellspacing="0" id="table1" style="position: relative !important">
<tbody>
<tr>
<td colspan="10">
<div style="display: flex; align-items: center; justify-content: space-between">
<img src="/src/assets/imgs/exlogo.png" style="width: 100px" alt="" />
<span style="font-size: 20px; font-weight: 700">清单附件</span>
<span style="font-size: 12px">发货编号{{ `H1202306024` }}</span>
</div>
</td>
</tr>
</tbody>
<tbody>
<tr>
<td> 序号 </td>
<td colspan="3">
<span>摸具名称</span>
</td>
<td colspan="3">摸具图号</td>
<td> 数量() </td>
<td colspan="2">备注 </td>
</tr>
<tr>
<td colspan="10" style="background-color: rgb(255, 255, 0)">
<div style="text-align: left">模具清单</div>
</td>
</tr>
<tr v-for="item in 7" :key="item">
<td> {{ item }} </td>
<td colspan="3">
<span>{{ '摸具名称' }}</span>
</td>
<td colspan="3">{{ `摸具图号` }}</td>
<td> {{ item }} </td>
<td colspan="2">{{ `备注` }} </td>
</tr>
<tr>
<td colspan="10" style="background-color: rgb(255, 255, 0)">
<div style="text-align: left">备件清单</div>
</td>
</tr>
<tr v-for="item in 5" :key="item">
<td> {{ item }} </td>
<td colspan="3">
<span>{{ '摸具名称' }}</span>
</td>
<td colspan="3">{{ `摸具图号` }}</td>
<td> {{ item }} </td>
<td colspan="2">{{ `备注` }} </td>
</tr>
<tr>
<td colspan="10" style="background-color: rgb(255, 255, 0)">
<div style="text-align: left">刀具清单</div>
</td>
</tr>
<tr v-for="item in 5" :key="item">
<td> {{ item }} </td>
<td colspan="3">
<span>{{ '摸具名称' }}</span>
</td>
<td colspan="3">{{ `摸具图号` }}</td>
<td> {{ item }} </td>
<td colspan="2">{{ `备注` }} </td>
</tr>
</tbody>
<tr>
<td colspan="10">
<div style="text-align: left">内部货物门点人签名:</div>
</td>
</tr>
</table>
<div
style="
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
"
>
<span>制单人{{ `` }}</span>
<span>-回单联-</span>
</div>
</div>
</div> </div>
<template #footer> <template #footer>
<!-- 打印 --> <!-- 打印 -->
@ -296,6 +392,10 @@ const onPrint = () => {
justify-content: center; justify-content: center;
border-bottom: 1px dashed rgba(51, 51, 51, 1); border-bottom: 1px dashed rgba(51, 51, 51, 1);
} }
.divide_line1 {
justify-content: center;
border-bottom: 1px dashed rgb(255, 255, 255);
}
</style> </style>
<div> <div>
@ -371,6 +471,10 @@ table {
justify-content: center; justify-content: center;
border-bottom: 1px dashed rgba(51, 51, 51, 1); border-bottom: 1px dashed rgba(51, 51, 51, 1);
} }
.divide_line1 {
justify-content: center;
border-bottom: 1px dashed rgb(255, 255, 255);
}
#table { #table {
position: relative; position: relative;
} }

@ -0,0 +1,83 @@
<template>
<el-select
v-model="valueName"
placeholder="请输入负责人"
:remote-method="remoteMethod"
remote-show-suffix
remote
clearable
reserve-keyword
filterable
:loading="userSelectLoading"
@change="onSelectChange"
>
<el-option
v-for="item in userSelectList"
:key="item.id"
:label="item.username + ' ' + item.nickname"
:value="item.id"
/>
</el-select>
</template>
<script lang="ts" setup>
import { ref, onMounted, toRefs } from 'vue'
import * as UserApi from '@/api/system/user'
interface UserVO {
id: number
username: string
nickname: string
}
const props = defineProps({
initialUserList: {
type: Array as PropType<UserVO[]>,
default: () => []
}
})
const valueName: any = ref() //
const emit = defineEmits(['update:valueName'])
const userList = ref<UserApi.UserVO[]>([]) //
const userSelectList = ref<UserApi.UserVO[]>([])
const userSelectLoading = ref(false)
//
onMounted(async () => {
const userParams = {
pageNo: 1,
pageSize: 10,
status: '0' //
}
try {
const data = await UserApi.getUserPage(userParams)
userList.value = data.list
//
remoteMethod('')
} catch (error) {
console.error(error)
}
})
const remoteMethod = (query: any) => {
if (query) {
userSelectLoading.value = true
setTimeout(() => {
userSelectLoading.value = false
userSelectList.value = userList.value.filter((item) => {
return (
item.nickname.toLowerCase().includes(query.toLowerCase()) ||
item.username.toLowerCase().includes(query.toLowerCase())
)
})
}, 200)
} else {
userSelectList.value = userList.value
}
}
const onSelectChange = (newValue: number | null) => {
// console.log(newValue)
emit('update:valueName', newValue)
valueName.value = newValue;
}
</script>
Loading…
Cancel
Save