材料管理,机械管理
This commit is contained in:
@ -5,7 +5,7 @@ VITE_APP_TITLE = 新能源项目管理平台
|
||||
VITE_APP_ENV = 'development'
|
||||
|
||||
# 开发环境
|
||||
VITE_APP_BASE_API = 'http://192.168.110.6:8899'
|
||||
VITE_APP_BASE_API = 'http://192.168.110.8:8899'
|
||||
|
||||
# 应用访问路径 例如使用前缀 /admin/
|
||||
VITE_APP_CONTEXT_PATH = '/'
|
||||
|
@ -45,7 +45,8 @@ export interface MachineryForm extends BaseEntity {
|
||||
* 主键id
|
||||
*/
|
||||
id?: string | number;
|
||||
|
||||
principalPhone: string | number;
|
||||
provider: string | number;
|
||||
/**
|
||||
* 机械名称
|
||||
*/
|
||||
@ -82,7 +83,8 @@ export interface MachineryQuery extends PageQuery {
|
||||
* 机械名称
|
||||
*/
|
||||
machineryName?: string;
|
||||
|
||||
principalPhone: string | number;
|
||||
provider: string | number;
|
||||
/**
|
||||
* 机械型号
|
||||
*/
|
||||
|
@ -45,6 +45,8 @@ export interface CompanyForm extends BaseEntity {
|
||||
* 公司名称
|
||||
*/
|
||||
companyName?: string;
|
||||
principalPhone?: string;
|
||||
principal?: string;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
@ -72,6 +74,8 @@ export interface CompanyQuery extends PageQuery {
|
||||
* 公司名称
|
||||
*/
|
||||
companyName?: string;
|
||||
principalPhone?: string;
|
||||
principal?: string;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
|
@ -208,7 +208,8 @@ const handleUploadSuccess = (res: any, file: UploadFile) => {
|
||||
};
|
||||
|
||||
// 删除文件
|
||||
const handleDelete = (index: string | number, type?: string) => {
|
||||
const handleDelete = async (index: string | number, type?: string) => {
|
||||
await proxy?.$modal.confirm('是否确认删除此文件?').finally();
|
||||
if (type === 'ossId') {
|
||||
delOss(index);
|
||||
fileList.value = fileList.value.filter((f) => f.ossId !== index);
|
||||
|
@ -16,6 +16,7 @@
|
||||
:file-list="fileList"
|
||||
:on-preview="handlePictureCardPreview"
|
||||
:class="{ hide: fileList.length >= limit }"
|
||||
accept="image/png, image/jpeg, image/jpg"
|
||||
>
|
||||
<el-icon class="avatar-uploader-icon">
|
||||
<plus />
|
||||
|
@ -41,6 +41,7 @@ const handleSelect = (projectId: string) => {
|
||||
const selectedProject = projects.value.find((p) => p.id === projectId);
|
||||
if (selectedProject) {
|
||||
userStore.setSelectedProject(selectedProject);
|
||||
console.log(userStore.selectedProject); // 打印选中的项目
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
@ -54,7 +54,7 @@ interface Props {
|
||||
}
|
||||
|
||||
const props = defineProps<Props>();
|
||||
|
||||
const emit = defineEmits(['submit']);
|
||||
const visible = ref<boolean>(false);
|
||||
const loading = ref<boolean>(false);
|
||||
|
||||
@ -90,6 +90,7 @@ const submitForm = () => {
|
||||
// 调用接口提交数据
|
||||
await addMachineryDetail({ ...form, machineryId: props.machineryId }).finally(() => (loading.value = false));
|
||||
ElMessage.success('提交成功');
|
||||
emit('submit');
|
||||
closeDialog();
|
||||
} catch (error) {
|
||||
ElMessage.error('提交失败');
|
||||
|
@ -10,9 +10,15 @@
|
||||
<el-table-column label="检验单位" align="center" prop="checkoutUnit" />
|
||||
<el-table-column label="检定日期/有效期" align="center" prop="checkoutDate" />
|
||||
<el-table-column label="入场时间" align="center" prop="entryTime" />
|
||||
<el-table-column label="图片" align="center" prop="pictureList.url">
|
||||
<el-table-column label="图片" align="center">
|
||||
<template #default="scope">
|
||||
<el-image :key="picture.id" v-for="picture in scope.row.pictureList" :src="picture.url" />
|
||||
<el-image
|
||||
:z-index="9999"
|
||||
:preview-src-list="imgList(scope.row.pictureList)"
|
||||
preview-teleported
|
||||
:src="scope.row.pictureList[0].url"
|
||||
class="w20"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
@ -39,7 +45,7 @@
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
<el-dialog title="修改机械出入场详情" v-model="dialogRef" width="500px" append-to-body>
|
||||
<el-dialog title="修改机械出入场详情" v-model="dialogRef" width="700px" append-to-body>
|
||||
<el-form ref="formRef" :model="form" :rules="rules" label-width="140px">
|
||||
<el-form-item label="出入场" prop="type">
|
||||
<el-select v-model="form.type" clearable placeholder="请选择出入场">
|
||||
@ -92,6 +98,7 @@
|
||||
import { MachineryDetailForm, MachineryDetailQuery, MachineryDetailVO } from '@/api/machinery/machineryDetail/types';
|
||||
import { delMachineryDetail, getMachineryDetail, listMachineryDetail, updateMachineryDetail } from '@/api/machinery/machineryDetail';
|
||||
import { ref } from 'vue';
|
||||
import { Picture } from '@element-plus/icons-vue';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { machinery_entry_exit_type, sys_normal_disable } = toRefs<any>(proxy?.useDict('machinery_entry_exit_type', 'sys_normal_disable'));
|
||||
@ -141,6 +148,11 @@ const data = reactive<PageData<MachineryDetailForm, MachineryDetailQuery>>({
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
const imgList = computed(() => (list) => {
|
||||
const newList = list.map((item) => item.url);
|
||||
return newList;
|
||||
});
|
||||
|
||||
const machineryDetailList = ref<MachineryDetailVO[]>([]);
|
||||
/** 展开选中数据 */
|
||||
const getList = async () => {
|
||||
|
@ -54,9 +54,11 @@
|
||||
<el-table-column label="机械型号" align="center" prop="machineryNumber" />
|
||||
<el-table-column label="数量" align="center" prop="number" />
|
||||
<el-table-column label="负责人" align="center" prop="principal" />
|
||||
<el-table-column label="负责人电话" align="center" prop="principalPhone" />
|
||||
<el-table-column label="供应商" align="center" prop="provider" />
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
<el-table-column label="创建时间" align="center" prop="createTime" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<el-table-column label="创建时间" align="center" prop="createTime" width="180" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding" width="300">
|
||||
<template #default="scope">
|
||||
<el-space wrap>
|
||||
<el-button link type="success" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['machinery:machinery:edit']">修改 </el-button>
|
||||
@ -73,7 +75,7 @@
|
||||
</el-card>
|
||||
<!-- 添加或修改机械对话框 -->
|
||||
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
||||
<el-form ref="machineryFormRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form ref="machineryFormRef" :model="form" :rules="rules" label-width="90px">
|
||||
<el-form-item label="机械名称" prop="machineryName">
|
||||
<el-input v-model="form.machineryName" placeholder="请输入机械名称" />
|
||||
</el-form-item>
|
||||
@ -86,6 +88,12 @@
|
||||
<el-form-item label="负责人" prop="principal">
|
||||
<el-input v-model="form.principal" placeholder="请输入负责人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="负责人电话" prop="principalPhone">
|
||||
<el-input v-model="form.principalPhone" placeholder="请输入负责人电话" type="number" />
|
||||
</el-form-item>
|
||||
<el-form-item label="供应商" prop="provider">
|
||||
<el-input v-model="form.provider" placeholder="请输入供应商" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||
</el-form-item>
|
||||
@ -97,7 +105,7 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<machinery-detail-add-dialog :machinery-id="currentMachineryId" ref="dialogRef" />
|
||||
<machinery-detail-add-dialog :machinery-id="currentMachineryId" ref="dialogRef" @submit="getList" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -139,7 +147,9 @@ const initFormData: MachineryForm = {
|
||||
projectId: currentProject.value.id,
|
||||
number: undefined,
|
||||
principal: undefined,
|
||||
remark: undefined
|
||||
remark: undefined,
|
||||
principalPhone: undefined,
|
||||
provider: undefined
|
||||
};
|
||||
const data = reactive<PageData<MachineryForm, MachineryQuery>>({
|
||||
form: { ...initFormData },
|
||||
@ -151,7 +161,9 @@ const data = reactive<PageData<MachineryForm, MachineryQuery>>({
|
||||
projectId: currentProject.value.id,
|
||||
number: undefined,
|
||||
principal: undefined,
|
||||
params: {}
|
||||
params: {},
|
||||
principalPhone: undefined,
|
||||
provider: undefined
|
||||
},
|
||||
rules: {
|
||||
id: [{ required: true, message: '主键id不能为空', trigger: 'blur' }]
|
||||
@ -262,6 +274,20 @@ const handleAddMachineryDetail = (row?: MachineryVO) => {
|
||||
dialogRef.value.openDialog();
|
||||
};
|
||||
|
||||
//监听项目id刷新数据
|
||||
const listeningProject = watch(
|
||||
() => currentProject.value.id,
|
||||
(nid, oid) => {
|
||||
queryParams.value.projectId = nid;
|
||||
form.value.projectId = nid;
|
||||
getList();
|
||||
}
|
||||
);
|
||||
|
||||
onUnmounted(() => {
|
||||
listeningProject();
|
||||
});
|
||||
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
|
@ -8,7 +8,7 @@
|
||||
<el-input v-model="queryParams.companyName" placeholder="请输入公司名称" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="公司状态" prop="status">
|
||||
<el-select v-model="queryParams.status" clearable placeholder="请选择公司状态">
|
||||
<el-select v-model="queryParams.status" clearable placeholder="全部">
|
||||
<el-option v-for="item in sys_normal_disable" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@ -49,6 +49,8 @@
|
||||
<!-- <el-table-column label="主键id" align="center" prop="id" v-if="true" /> -->
|
||||
<el-table-column label="序号" type="index" width="60" align="center" />
|
||||
<el-table-column label="公司名称" align="center" prop="companyName" />
|
||||
<el-table-column label="负责人" align="center" prop="principal" />
|
||||
<el-table-column label="负责人电话" align="center" prop="principalPhone" />
|
||||
<el-table-column label="公司状态" align="center" prop="status">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="sys_normal_disable" :value="scope.row.status" />
|
||||
@ -72,10 +74,16 @@
|
||||
<!-- 添加或修改公司对话框 -->
|
||||
|
||||
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
||||
<el-form ref="companyFormRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form ref="companyFormRef" :model="form" :rules="rules" label-width="100px">
|
||||
<el-form-item label="公司名称" prop="companyName">
|
||||
<el-input v-model="form.companyName" placeholder="请输入公司名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="负责人" prop="principal">
|
||||
<el-input v-model="form.principal" placeholder="请输入负责人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="负责人电话" prop="principalPhone">
|
||||
<el-input v-model="form.principalPhone" placeholder="请输入负责人电话" type="number" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
@ -129,7 +137,9 @@ const initFormData: CompanyForm = {
|
||||
projectId: currentProject.value.id,
|
||||
status: undefined,
|
||||
remark: undefined,
|
||||
qualification: undefined
|
||||
qualification: undefined,
|
||||
principalPhone: undefined,
|
||||
principal: undefined
|
||||
};
|
||||
const data = reactive<PageData<CompanyForm, CompanyQuery>>({
|
||||
form: { ...initFormData },
|
||||
@ -140,10 +150,15 @@ const data = reactive<PageData<CompanyForm, CompanyQuery>>({
|
||||
projectId: currentProject.value.id,
|
||||
status: undefined,
|
||||
qualification: undefined,
|
||||
principalPhone: undefined,
|
||||
principal: undefined,
|
||||
params: {}
|
||||
},
|
||||
rules: {
|
||||
id: [{ required: true, message: '主键id不能为空', trigger: 'blur' }]
|
||||
id: [{ required: true, message: '主键id不能为空', trigger: 'blur' }],
|
||||
companyName: [{ required: true, message: '公司名字不能为空', trigger: 'blur' }],
|
||||
principal: [{ required: true, message: '负责人不能为空', trigger: 'blur' }],
|
||||
principalPhone: [{ required: true, message: '负责人电话不能为空', trigger: 'blur' }]
|
||||
}
|
||||
});
|
||||
|
||||
@ -211,6 +226,7 @@ const submitForm = () => {
|
||||
companyFormRef.value?.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
buttonLoading.value = true;
|
||||
form.value.projectId = currentProject.value.id;
|
||||
if (form.value.id) {
|
||||
await updateCompany(form.value).finally(() => (buttonLoading.value = false));
|
||||
} else {
|
||||
@ -243,6 +259,20 @@ const handleExport = () => {
|
||||
);
|
||||
};
|
||||
|
||||
//监听项目id刷新数据
|
||||
const listeningProject = watch(
|
||||
() => currentProject.value.id,
|
||||
(nid, oid) => {
|
||||
queryParams.value.projectId = nid;
|
||||
form.value.projectId = nid;
|
||||
getList();
|
||||
}
|
||||
);
|
||||
|
||||
onUnmounted(() => {
|
||||
listeningProject();
|
||||
});
|
||||
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
|
@ -42,18 +42,22 @@ const materialsDetail = ref<MaterialsVO>();
|
||||
const ossIdMap = ref<Record<string, string>>({});
|
||||
const ossMap = ref<Record<string, OssVO>>({}); // 存储 ossId -> 对象映射
|
||||
const getMaterialsDetail = async () => {
|
||||
console.log('getMaterialsDetail', props.materialsId);
|
||||
|
||||
loading.value = true;
|
||||
const res = await getMaterials(props.materialsId);
|
||||
if (res.data && res.code === 200) {
|
||||
materialsDetail.value = res.data;
|
||||
ossIdMap.value = res.data.fileOssMap;
|
||||
// 获取 value 列表
|
||||
if (res.data.fileOssMap) {
|
||||
if (res.data.fileOssMap && Object.keys(res.data.fileOssMap).length !== 0) {
|
||||
const values = Object.values(res.data.fileOssMap);
|
||||
const ossRes = await listByIds(values);
|
||||
ossMap.value = Object.fromEntries(ossRes.data.map((item) => [item.ossId, item]));
|
||||
}
|
||||
}
|
||||
console.log('ossMap', ossMap.value);
|
||||
|
||||
loading.value = false;
|
||||
};
|
||||
|
||||
|
@ -9,9 +9,9 @@
|
||||
<el-form-item label="材料数量" prop="number">
|
||||
<el-input-number v-model="form.number" placeholder="请输入预计使用数量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="剩余库存数量" prop="residue">
|
||||
<!-- <el-form-item label="剩余库存数量" prop="residue">
|
||||
<el-input v-model="form.residue" placeholder="请输入剩余库存数量" />
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="出入库负责人" prop="operator">
|
||||
<el-input v-model="form.operator" placeholder="请输入出入库负责人" />
|
||||
</el-form-item>
|
||||
@ -58,6 +58,7 @@ interface Props {
|
||||
}
|
||||
|
||||
const props = defineProps<Props>();
|
||||
const emit = defineEmits(['submit']);
|
||||
|
||||
const visible = ref<boolean>(false);
|
||||
const loading = ref<boolean>(false);
|
||||
@ -97,6 +98,7 @@ const submitForm = () => {
|
||||
// 调用接口提交数据
|
||||
await addMaterialsInventory({ ...form, materialsId: props.materialsId });
|
||||
ElMessage.success('提交成功');
|
||||
emit('submit');
|
||||
closeDialog();
|
||||
} catch (error) {
|
||||
ElMessage.error('提交失败');
|
||||
|
@ -1,6 +1,7 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-table size="small" v-if="materialsInventoryList.length !== 0" :data="materialsInventoryList">
|
||||
<el-table-column label="" width="100" align="center" />
|
||||
<el-table-column label="序号" type="index" width="60" align="center" />
|
||||
<el-table-column label="出入库" align="center" prop="outPut">
|
||||
<template #default="scope">
|
||||
|
@ -8,7 +8,7 @@
|
||||
<el-input v-model="queryParams.materialsName" placeholder="请输入材料名称" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="材料提供商" prop="companyId">
|
||||
<el-select v-model="queryParams.companyId" clearable placeholder="请选择材料提供商">
|
||||
<el-select v-model="queryParams.companyId" clearable placeholder="全部">
|
||||
<el-option v-for="item in companyOptions" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@ -133,7 +133,7 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<materials-inventory-add-dialog :materials-id="currentMaterialsId" :project-id="currentProject.id" ref="dialogRef" />
|
||||
<materials-inventory-add-dialog :materials-id="currentMaterialsId" :project-id="currentProject.id" ref="dialogRef" @submit="getList" />
|
||||
<el-dialog title="材料详情" v-model="showDetailDrawer" width="700px">
|
||||
<materials-detail-drawer :materials-id="currentMaterialsId" />
|
||||
</el-dialog>
|
||||
@ -295,6 +295,7 @@ const submitForm = () => {
|
||||
materialsFormRef.value?.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
buttonLoading.value = true;
|
||||
form.value.projectId = currentProject.value.id;
|
||||
if (form.value.id) {
|
||||
await updateMaterials({
|
||||
...form.value,
|
||||
@ -351,6 +352,20 @@ const handleOssUpdate = (ossId: string, value: string) => {
|
||||
}
|
||||
};
|
||||
|
||||
//监听项目id刷新数据
|
||||
const listeningProject = watch(
|
||||
() => currentProject.value.id,
|
||||
(nid, oid) => {
|
||||
queryParams.value.projectId = nid;
|
||||
form.value.projectId = nid;
|
||||
getList();
|
||||
}
|
||||
);
|
||||
|
||||
onUnmounted(() => {
|
||||
listeningProject();
|
||||
});
|
||||
|
||||
onMounted(() => {
|
||||
getList();
|
||||
getCompanyList();
|
||||
|
@ -31,7 +31,7 @@
|
||||
<el-table v-loading="loading" :data="materialsInventoryList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="序号" type="index" width="60" align="center" />
|
||||
<el-table-column label="材料名称" align="center" prop="materialsVo.materialsName" />
|
||||
<el-table-column label="材料名称" align="center" prop="materialsName" />
|
||||
<el-table-column label="入库登记" align="center">
|
||||
<el-table-column label="数量" align="center" prop="number">
|
||||
<template #default="scope">
|
||||
@ -79,7 +79,7 @@
|
||||
<el-table-column label="处理方式" align="center" prop="disposition" />
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-space wrap>
|
||||
<el-button link type="success" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['materials:materialsInventory:edit']">
|
||||
@ -90,7 +90,7 @@
|
||||
</el-button>
|
||||
</el-space>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column> -->
|
||||
</el-table>
|
||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
</el-card>
|
||||
@ -225,12 +225,6 @@ const getList = async () => {
|
||||
materialsInventoryList.value = res.rows;
|
||||
total.value = res.total;
|
||||
const materialsMap = new Map();
|
||||
res.rows.forEach((record: MaterialsInventoryVO) => {
|
||||
const { id, materialsName } = record.materialsVo;
|
||||
if (!materialsMap.has(id)) {
|
||||
materialsMap.set(id, { id, materialsName });
|
||||
}
|
||||
});
|
||||
materialsOptions.value = Array.from(materialsMap.values());
|
||||
loading.value = false;
|
||||
};
|
||||
@ -281,6 +275,7 @@ const submitForm = () => {
|
||||
materialsInventoryFormRef.value?.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
buttonLoading.value = true;
|
||||
form.value.projectId = currentProject.value.id;
|
||||
if (form.value.id) {
|
||||
await updateMaterialsInventory(form.value).finally(() => (buttonLoading.value = false));
|
||||
} else {
|
||||
@ -312,6 +307,20 @@ const handleExport = () => {
|
||||
`materialsInventory_${new Date().getTime()}.xlsx`
|
||||
);
|
||||
};
|
||||
|
||||
//监听项目id刷新数据
|
||||
const listeningProject = watch(
|
||||
() => currentProject.value.id,
|
||||
(nid, oid) => {
|
||||
queryParams.value.projectId = nid;
|
||||
form.value.projectId = nid;
|
||||
getList();
|
||||
}
|
||||
);
|
||||
|
||||
onUnmounted(() => {
|
||||
listeningProject();
|
||||
});
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
|
@ -8,12 +8,12 @@
|
||||
<el-input v-model="queryParams.userName" placeholder="请输入人员姓名" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="班组" prop="teamId">
|
||||
<el-select v-model="queryParams.teamId" placeholder="请选择班组" clearable>
|
||||
<el-select v-model="queryParams.teamId" placeholder="全部" clearable>
|
||||
<el-option v-for="dict in ProjectTeam" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="工种" prop="typeOfWork">
|
||||
<el-select v-model="queryParams.typeOfWork" placeholder="请选择工种" clearable>
|
||||
<el-select v-model="queryParams.typeOfWork" placeholder="全部" clearable>
|
||||
<el-option v-for="dict in type_of_work" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
@ -8,7 +8,7 @@
|
||||
<el-input v-model="queryParams.userName" placeholder="请输入人员姓名" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="班组" prop="teamId">
|
||||
<el-select v-model="queryParams.teamId" placeholder="请选择班组" clearable>
|
||||
<el-select v-model="queryParams.teamId" placeholder="全部" clearable>
|
||||
<el-option v-for="dict in ProjectTeam" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@ -16,7 +16,7 @@
|
||||
<el-date-picker clearable v-model="queryParams.clockDate" type="date" value-format="YYYY-MM-DD" placeholder="请选择打卡日期" />
|
||||
</el-form-item>
|
||||
<el-form-item label="考勤状态" prop="clockStatus">
|
||||
<el-select v-model="queryParams.clockStatus" placeholder="请选择考勤状态" clearable>
|
||||
<el-select v-model="queryParams.clockStatus" placeholder="全部" clearable>
|
||||
<el-option v-for="dict in clock_status_type" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
@ -8,22 +8,22 @@
|
||||
<el-input v-model="queryParams.userName" placeholder="请输入人员姓名" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="分包公司" prop="contractorId">
|
||||
<el-select v-model="queryParams.contractorId" clearable placeholder="请选择分包公司">
|
||||
<el-select v-model="queryParams.contractorId" clearable placeholder="全部">
|
||||
<el-option v-for="item in contractorOpt" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="班组" prop="contractorId">
|
||||
<el-select v-model="queryParams.teamId" clearable placeholder="请选择班组">
|
||||
<el-select v-model="queryParams.teamId" clearable placeholder="全部">
|
||||
<el-option v-for="item in ProjectTeam" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="工种" prop="typeOfWork">
|
||||
<el-select v-model="queryParams.typeOfWork" clearable placeholder="请选择工种">
|
||||
<el-select v-model="queryParams.typeOfWork" clearable placeholder="全部">
|
||||
<el-option v-for="item in type_of_work" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="打卡" prop="clock">
|
||||
<el-select v-model="queryParams.clock" clearable placeholder="请选择打卡">
|
||||
<el-select v-model="queryParams.clock" clearable placeholder="全部">
|
||||
<el-option v-for="item in user_clock_type" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@ -945,6 +945,7 @@ const submitForm = () => {
|
||||
console.log(valid);
|
||||
if (valid) {
|
||||
buttonLoading.value = true;
|
||||
form.value.projectId = currentProject.value.id;
|
||||
if (form.value.id) {
|
||||
await updateConstructionUser(form.value).finally(() => (buttonLoading.value = false));
|
||||
} else {
|
||||
|
@ -163,7 +163,6 @@ const { queryParams, form, rules } = toRefs(data);
|
||||
/** 查询分包单位列表 */
|
||||
const getList = async () => {
|
||||
loading.value = true;
|
||||
|
||||
const res = await listContractor(queryParams.value);
|
||||
contractorList.value = res.rows;
|
||||
total.value = res.total;
|
||||
@ -222,6 +221,7 @@ const handleUpdate = async (row?: ContractorVO) => {
|
||||
const submitForm = () => {
|
||||
contractorFormRef.value?.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
form.value.projectId = currentProject.value.id;
|
||||
buttonLoading.value = true;
|
||||
if (form.value.id) {
|
||||
await updateContractor(form.value).finally(() => (buttonLoading.value = false));
|
||||
@ -269,6 +269,7 @@ const listeningProject = watch(
|
||||
(nid, oid) => {
|
||||
queryParams.value.projectId = nid;
|
||||
form.value.projectId = nid;
|
||||
console.log('监听项目id', queryParams.value.projectId, form.value.projectId);
|
||||
getList();
|
||||
}
|
||||
);
|
||||
|
@ -63,7 +63,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="负责人" align="center" prop="principal" />
|
||||
<el-table-column label="负责人电话" align="center" prop="principalPhone" width="100" />
|
||||
<el-table-column label="负责人电话" align="center" prop="principalPhone" width="120" />
|
||||
<el-table-column label="实际容量(M)" align="center" prop="actual" width="100" />
|
||||
<el-table-column label="计划容量(M)" align="center" prop="plan" width="100" />
|
||||
<el-table-column label="开工时间" align="center" prop="onStreamTime" width="120" />
|
||||
@ -148,17 +148,17 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12" :offset="0">
|
||||
<el-form-item label="计划容量" prop="plan">
|
||||
<el-form-item label="计划容量(M)" prop="plan">
|
||||
<el-input v-model="form.plan" placeholder="请输入计划容量" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12" :offset="0">
|
||||
<el-form-item label="实际容量" prop="actual">
|
||||
<el-form-item label="实际容量(M)" prop="actual">
|
||||
<el-input v-model="form.actual" placeholder="请输入实际容量" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12" :offset="0">
|
||||
<el-form-item label="设计总量" prop="designTotal">
|
||||
<el-form-item label="设计总量(M)" prop="designTotal">
|
||||
<el-input v-model="form.designTotal" placeholder="请输入设计总量" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@ -232,7 +232,7 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<el-dialog v-model="amapStatus" title="获取经纬度" width="80%">
|
||||
<el-dialog v-model="amapStatus" :title="form.projectName + '-获取经纬度'" width="80%">
|
||||
<amap height="620px" @setLocation="setPoi"></amap>
|
||||
<!-- <template #footer>
|
||||
<div class="dialog-footer">
|
||||
@ -411,7 +411,7 @@ const handleUpdate = async (row?: ProjectVO) => {
|
||||
const res = await getProject(_id);
|
||||
Object.assign(form.value, res.data);
|
||||
dialog.visible = true;
|
||||
dialog.title = '修改项目';
|
||||
dialog.title = '修改-' + form.value.projectName;
|
||||
};
|
||||
|
||||
/** 上传安全协议书按钮操作 */
|
||||
|
@ -5,12 +5,12 @@
|
||||
<el-card shadow="hover">
|
||||
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
||||
<el-form-item label="工种" prop="workType">
|
||||
<el-select v-model="queryParams.workType" placeholder="请选择工种" clearable>
|
||||
<el-select v-model="queryParams.workType" placeholder="全部" clearable>
|
||||
<el-option v-for="dict in type_of_work" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="工资计算方式" prop="wageCalculationType" label-width="100px">
|
||||
<el-select v-model="queryParams.wageCalculationType" placeholder="请选择工资计算方式" clearable>
|
||||
<el-select v-model="queryParams.wageCalculationType" placeholder="全部" clearable>
|
||||
<el-option v-for="dict in wageCalculationTypeList" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@ -266,6 +266,7 @@ const submitForm = () => {
|
||||
workWageFormRef.value?.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
buttonLoading.value = true;
|
||||
form.value.projectId = currentProject.value.id;
|
||||
if (form.value.id) {
|
||||
await updateWorkWage(form.value).finally(() => (buttonLoading.value = false));
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user