+-
+-

+-
+-
+- 31℃
+-
+-
晴朗
+-
+- 紫外线强度:高
+-
+-
+-
+-
+-

+-
+-
相对湿度: 45%
+-
+-
+-
+-

+-
+-
光照强度: 45%
+-
+-
+-
+-

+-
+-
风速: 2.3m/s
+-
+-
+-
+-

+-
+-
日落时间: 19.45
+-
+-
++
++
++
++
++

++
++
31℃
++
晴朗
++
紫外线强度:高
++
++
++
++

+
+-
+-
+-
+-
16:00
+-
30°C
+-
+-

+-
+-
+-
+-
17:00
+-
29°C
+-
+-

+-
+-
+-
+-
+-
18:00
+-
25°C
+-
+-

+-
+-
+-
+-
+-
现在
+-
25°C
+-
+-

+-
+-
+-
+-
20:00
+-
25°C
+-
+-

+-
+-
+-
+-
21:00
+-
20°C
+-
+-

+-
+-
+-
++
相对湿度: 45%
++
++
++
++

+
+-
+-
++
光照强度: 45%
++
++
++
++

++
++
风速: 2.3m/s
++
++
++
++

++
++
日落时间: 19.45
++
++
++
++
++
++
++
16:00
++
30°C
++
++

++
++
++
++
17:00
++
29°C
++
++

++
++
++
++
++
18:00
++
25°C
++
++

++
++
++
++
++
现在
++
25°C
++
++

++
++
++
++
20:00
++
25°C
++
++

++
++
++
++
21:00
++
20°C
++
++

++
++
++
++
++
++
+
+
+-
++
+diff --git a/src/views/demo3/components/line2.vue b/src/views/demo3/components/line2.vue
+deleted file mode 100644
+index e69de29..0000000
+diff --git a/src/views/design/technicalStandard/component/documentsDeails.vue b/src/views/design/technicalStandard/component/documentsDeails.vue
+index 99e9705..9fa82db 100644
+--- a/src/views/design/technicalStandard/component/documentsDeails.vue
++++ b/src/views/design/technicalStandard/component/documentsDeails.vue
+@@ -3,8 +3,8 @@
+
+diff --git a/src/views/design/technicalStandard/component/documentsEdit.vue b/src/views/design/technicalStandard/component/documentsEdit.vue
+index 3a0754b..d282d99 100644
+--- a/src/views/design/technicalStandard/component/documentsEdit.vue
++++ b/src/views/design/technicalStandard/component/documentsEdit.vue
+@@ -3,8 +3,8 @@
+
+diff --git a/src/views/enterpriseLarge/digitalizationScreen/components/leftPage.vue b/src/views/enterpriseLarge/digitalizationScreen/components/leftPage.vue
+index 6264c41..32112dc 100644
+--- a/src/views/enterpriseLarge/digitalizationScreen/components/leftPage.vue
++++ b/src/views/enterpriseLarge/digitalizationScreen/components/leftPage.vue
+@@ -118,21 +118,21 @@ const indicators = ref([
+ name: '风电项目',
+ value: '288.88',
+ unit: '个',
+- iconPath: '/src/assets/images/contract.png'
++ iconPath: '/assets/demo/contract.png'
+ },
+ {
+ id: '3',
+ name: '光伏项目总容量',
+ value: '158.88',
+ unit: 'MW',
+- iconPath: '/src/assets/images/totalCapacity.png'
++ iconPath: '/assets/demo/totalCapacity.png'
+ },
+ {
+ id: '4',
+ name: '风电项目总容量',
+ value: '18',
+ unit: 'MW',
+- iconPath: '/src/assets/images/todayConstruction.png'
++ iconPath: '/assets/demo/todayConstruction.png'
+ }
+ ]);
+
+diff --git a/src/views/enterpriseLarge/digitalizationScreen/components/rightPage.vue b/src/views/enterpriseLarge/digitalizationScreen/components/rightPage.vue
+index ad7f90b..f32bc55 100644
+--- a/src/views/enterpriseLarge/digitalizationScreen/components/rightPage.vue
++++ b/src/views/enterpriseLarge/digitalizationScreen/components/rightPage.vue
+@@ -107,6 +107,7 @@ const processedDataList = ref([]);
+ //获取数据
+ const getData = async () => {
+ const res = await projectProgress();
++ console.log('🚀 ~ getData ~ res:', res);
+ if (res.code == 200) {
+ capacityData.value = res.data;
+ // processedDataList.value = res.data.projectProgressDetailList;
+@@ -143,7 +144,7 @@ const initPieChart = () => {
+ };
+ });
+ pieOption.series.data = data;
+-
++ console.log(data);
+ // pieOption.graphic[0].style.text = totalPercent.value + '%';
+ pieChart = echarts.init(pieChartRef.value, null, {
+ renderer: 'canvas',
+diff --git a/src/views/enterpriseLarge/digitalizationScreen/index.vue b/src/views/enterpriseLarge/digitalizationScreen/index.vue
+index fead15c..f7e3a4e 100644
+--- a/src/views/enterpriseLarge/digitalizationScreen/index.vue
++++ b/src/views/enterpriseLarge/digitalizationScreen/index.vue
+@@ -31,15 +31,15 @@ const isHideOther = ref(false);
+ * 切换中心页面全屏
+ */
+ const handleChangePage = () => {
+- if (isFull.value) {
+- isFull.value = false;
+- setTimeout(() => {
+- isHideOther.value = false;
+- }, 500);
+- } else {
+- isFull.value = true;
+- isHideOther.value = true;
+- }
++ // if (isFull.value) {
++ // isFull.value = false;
++ // setTimeout(() => {
++ // isHideOther.value = false;
++ // }, 500);
++ // } else {
++ // isFull.value = true;
++ // isHideOther.value = true;
++ // }
+ };
+
+
+diff --git a/src/views/formalities/formalitiesAreConsolidated/index.vue b/src/views/formalities/formalitiesAreConsolidated/index.vue
+index 1b7bdad..952c7d8 100644
+--- a/src/views/formalities/formalitiesAreConsolidated/index.vue
++++ b/src/views/formalities/formalitiesAreConsolidated/index.vue
+@@ -95,8 +95,8 @@
+
+
+
+
+-

++
+
+
+-
+-

+-
03-18 15:00
+-
++
++
![]()
++
{{ parseTime(item.createdAt, '{m}-{d} {h}:{i}') }}
++
+
+
+
+-

++
+
+
+
+
+
+-
++
+
+
+diff --git a/src/views/machinery/component/detail.vue b/src/views/machinery/component/detail.vue
+new file mode 100644
+index 0000000..06e4907
+--- /dev/null
++++ b/src/views/machinery/component/detail.vue
+@@ -0,0 +1,156 @@
++
++
++
++
++
++ 机械详情
++
++
++
++
++ {{ formData.machineryName }}
++
++
++ {{ formData.machineryNumber }}
++
++
++ {{ formData.ct }}
++
++
++ {{ formData.principal }}
++
++
++ {{ formData.remark }}
++
++
++ {{ formData.createBy }}
++
++
++ {{ formData.createdAt }}
++
++
++
++
++
++
++
++
+diff --git a/src/views/machinery/component/edit.vue b/src/views/machinery/component/edit.vue
+new file mode 100644
+index 0000000..9a178d7
+--- /dev/null
++++ b/src/views/machinery/component/edit.vue
+@@ -0,0 +1,184 @@
++
++
++
++
++
++
++ {{ (!formData.id || formData.id == 0 ? '添加' : '修改') + '机械' }}
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+diff --git a/src/views/machinery/component/model.ts b/src/views/machinery/component/model.ts
+new file mode 100644
+index 0000000..f8125fb
+--- /dev/null
++++ b/src/views/machinery/component/model.ts
+@@ -0,0 +1,59 @@
++export interface BusMachineryTableColumns {
++ id:number; // 序号
++ machineryName:string; // 机械名称
++ machineryNumber:string; // 编号
++ checkoutNumber:string; // 检验证编号
++ checkoutUnit:string; // 检验单位
++ checkoutDate:string; // 检定日期/有效期
++ status:string; // 施工类型状态
++ createdAt:string; // 创建时间
++}
++
++
++export interface BusMachineryInfoData {
++ id:number|undefined; // 序号
++ machineryName:string|undefined; // 机械名称
++ machineryNumber:string|undefined; // 编号
++ projectId:number|undefined; // 项目id
++ checkoutNumber:string|undefined; // 检验证编号
++ checkoutUnit:string|undefined; // 检验单位
++ checkoutDate:string|undefined; // 检定日期/有效期
++ status:boolean; // 施工类型状态
++ createBy:string|undefined; // 创建者
++ updateBy:string|undefined; // 更新者
++ createdAt:string|undefined; // 创建时间
++ updatedAt:string|undefined; // 更新时间
++ deletedAt:string|undefined; // 删除时间
++ number:number|undefined; //数量
++ entryTime: string|undefined; // 进场时间
++ principal: string|undefined; // 负责人
++ remark: string|undefined; // 备注
++}
++
++
++export interface BusMachineryTableDataState {
++ ids:any[];
++ tableData: {
++ data: Array;
++ total: number;
++ loading: boolean;
++ param: {
++ pageNum: number;
++ pageSize: number;
++ id: number|undefined;
++ machineryName: string|undefined;
++ status: string|undefined;
++ createdAt: string|undefined;
++ dateRange: string[];
++ projectId: undefined,
++ };
++ };
++}
++
++
++export interface BusMachineryEditState{
++ loading:boolean;
++ isShowDialog: boolean;
++ formData:BusMachineryInfoData;
++ rules: object;
++}
+\ No newline at end of file
+diff --git a/src/views/machinery/index.vue b/src/views/machinery/index.vue
+index d97b660..20a545b 100644
+--- a/src/views/machinery/index.vue
++++ b/src/views/machinery/index.vue
+@@ -1,295 +1,532 @@
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+- 搜索
+- 重置
+-
+-
+-
+-
+-
+-
+-
+-
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++ 搜索
++ 重置
++
++
++
++
+
+
+- 新增
+-
+-
+-
+- 修改
+-
++ 新增
+
+
+-
+- 删除
+-
++ 修改
+
+
+- 导出
++ 删除
+
+-
+
+-
+-
+-
+-
+-
+-
++
++
++
++
++
++
++
++
++
++
++ {{ scope.row.type == 1 ? '出场' : scope.row.type == 2 ? '入场' : '' }}
++
++
++
++
++
++
++
++
++
++
++
++ 暂无图片
++
++
++
++
++
++ 详情
++ 修改
++ 删除
++
++
++
++
+
+
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
++
++
++
++
++
++
++
+
+-
+- 修改
+-
+- 删除
+-
+- 入场
+-
++ {{ scope.row.createdAt }}
++
++
++
++
++ 详情
++ 修改
++ 删除
++ 入场
+
+
+
+-
+-
++
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
++
++
++
++
++
++
+
+
++
++
+diff --git a/src/views/materials/batchPlan/index.vue b/src/views/materials/batchPlan/index.vue
+index 37cc6b2..1c51d27 100644
+--- a/src/views/materials/batchPlan/index.vue
++++ b/src/views/materials/batchPlan/index.vue
+@@ -1,796 +1,6 @@
+-
+-
+-
+-
+
+
+
+-
+
+
+
+@@ -881,8 +91,6 @@
+
+
+
+-
+-
+
+
+ 基础信息
+@@ -905,9 +113,7 @@
+
+
+ 主要信息
+-
+
+-
+
+
+ selectNameVersion(val, scope.row, scope.$index)">
+@@ -915,7 +121,6 @@
+
+
+
+-
+
+
+
+@@ -936,25 +141,21 @@
+ />
+
+
+-
+
+
+ {{ scope.row.Remaining }}
+
+
+-
+
+
+ {{ scope.row.specification }}
+
+
+-
+
+
+ {{ scope.row.unit }}
+
+
+-
+
+
+
+-
+ {{ scope.row.quantityError }}
+
+
+-
+
+ * 质量标准
+
+
+
+
+-
+
+ * 需求到货时间
+
+
+
+
+-
+
+
+
+
+
+-
+
+
+
+diff --git a/src/views/materials/company/index.vue b/src/views/materials/company/index.vue
+index bba14ff..649abc3 100644
+--- a/src/views/materials/company/index.vue
++++ b/src/views/materials/company/index.vue
+@@ -24,7 +24,7 @@
+
+
+
+-
++
+
+ 导出
+
+@@ -49,24 +49,20 @@
+
+
+
+-
+-
+
+
+
+
+
+-
+-
+-
+-
++
++
+
+
+
+@@ -134,7 +130,7 @@ const dialog = reactive({
+ const initFormData: CompanyForm = {
+ id: undefined,
+ companyName: undefined,
+- projectId: currentProject.value?.id,
++ projectId: currentProject.value.goId,
+ status: undefined,
+ remark: undefined,
+ qualification: undefined,
+@@ -147,7 +143,7 @@ const data = reactive>({
+ pageNum: 1,
+ pageSize: 10,
+ companyName: undefined,
+- projectId: currentProject.value?.id,
++ projectId: currentProject.value.goId,
+ status: undefined,
+ qualification: undefined,
+ principalPhone: undefined,
+@@ -168,8 +164,8 @@ const { queryParams, form, rules } = toRefs(data);
+ const getList = async () => {
+ loading.value = true;
+ const res = await listCompany(queryParams.value);
+- companyList.value = res.rows;
+- total.value = res.total;
++ companyList.value = res.data.list;
++ total.value = res.data.total;
+ loading.value = false;
+ };
+
+@@ -261,7 +257,7 @@ const handleExport = () => {
+
+ //监听项目id刷新数据
+ const listeningProject = watch(
+- () => currentProject.value?.id,
++ () => currentProject.value.goId,
+ (nid, oid) => {
+ queryParams.value.projectId = nid;
+ form.value.projectId = nid;
+diff --git a/src/views/materials/materials/index.vue b/src/views/materials/materials/index.vue
+index 1cd6bb8..82cef67 100644
+--- a/src/views/materials/materials/index.vue
++++ b/src/views/materials/materials/index.vue
+@@ -39,8 +39,12 @@
+
+
+
+-
+-
++
++
++
++
++
++
+
+
+
+@@ -51,8 +55,8 @@
+
+
+
+-
+-
++
++
+
+
+
+@@ -181,7 +185,7 @@ const initFormData: MaterialsForm = {
+ id: undefined,
+ materialsName: undefined,
+ companyId: undefined,
+- projectId: currentProject.value?.id,
++ projectId: currentProject.value.goId,
+ typeSpecificationName: undefined,
+ fileOssIdMap: undefined,
+ usePart: undefined,
+@@ -197,7 +201,7 @@ const data = reactive>({
+ pageSize: 10,
+ materialsName: undefined,
+ companyId: undefined,
+- projectId: currentProject.value?.id,
++ projectId: currentProject.value.goId,
+ typeSpecificationName: undefined,
+ fileOssIdMap: undefined,
+ usePart: undefined,
+@@ -218,8 +222,8 @@ const companyOptions = ref([]);
+ const getList = async () => {
+ loading.value = true;
+ const res = await listMaterials(queryParams.value);
+- materialsList.value = res.rows;
+- total.value = res.total;
++ materialsList.value = res.data.list;
++ total.value = res.data.total;
+ loading.value = false;
+ };
+
+@@ -235,6 +239,7 @@ const getCompanyList = async () => {
+ value: company.id,
+ label: company.supplierName
+ }));
++ console.log('🚀 ~ getCompanyList ~ companyOptions.value:', companyOptions.value);
+ loading.value = false;
+ };
+
+@@ -272,7 +277,7 @@ const handleSelectionChange = (selection: MaterialsVO[]) => {
+ /** 展开材料详情抽屉操作 */
+ const showDetailDrawer = ref(false);
+ const handleShowDrawer = (row?: MaterialsVO) => {
+- currentMaterialsId.value = row.id;
++ currentMaterialsId.value = row.companyId;
+ showDetailDrawer.value = true;
+ };
+
+@@ -358,7 +363,7 @@ const handleOssUpdate = (ossId: string, value: string) => {
+
+ //监听项目id刷新数据
+ const listeningProject = watch(
+- () => currentProject.value?.id,
++ () => currentProject.value.goId,
+ (nid, oid) => {
+ queryParams.value.projectId = nid;
+ form.value.projectId = nid;
+diff --git a/src/views/other/ys7DeviceImg/index.vue b/src/views/other/ys7DeviceImg/index.vue
+index 3c4c292..fe3d06f 100644
+--- a/src/views/other/ys7DeviceImg/index.vue
++++ b/src/views/other/ys7DeviceImg/index.vue
+@@ -4,12 +4,12 @@
+
+
+
+-
+-
+-
+-
+-
++
++
+
++
+
+ 搜索
+ 重置
+@@ -18,36 +18,36 @@
+
+
+
+-
+
+
+
+-
+- 删除
+-
++ 删除
++
+
+
+
+-
+
+
+-
+-
++
++
+
+
+-
++
+
+
+-
+-
++
++
+
+- 删除
++ 删除
+
+
+
+-
+
+
+
+@@ -106,8 +106,8 @@ const { queryParams, form, rules } = toRefs(data);
+ const getList = async () => {
+ loading.value = true;
+ const res = await listYs7DeviceImg(queryParams.value);
+- ys7DeviceImgList.value = res.rows;
+- total.value = res.total;
++ ys7DeviceImgList.value = res.data.list;
++ total.value = res.data.total;
+ loading.value = false;
+ };
+
+diff --git a/src/views/progress/plan/component/createDailyRate.vue b/src/views/progress/plan/component/createDailyRate.vue
+index bbbd05d..47e1abd 100644
+--- a/src/views/progress/plan/component/createDailyRate.vue
++++ b/src/views/progress/plan/component/createDailyRate.vue
+@@ -3,7 +3,7 @@
+
+@@ -136,6 +137,7 @@
+ @selection-change="handleSelectionChangeWork"
+ :row-key="(row) => row.id"
+ ref="multipleTableWorkRef"
++ @row-click="onRowClick"
+ >
+
+
+@@ -377,6 +379,22 @@ const handleDayAdd = (row: any, obj: any) => {
+ state.updateRow = row;
+ getPvModuleList();
+ };
++const selectedRows = ref([]);
++const onRowClick = (row, column, event) => {
++ // 如果点击来源是复选框本身(或行内其它会触发单独事件的控件),不要再切换
++ if (event && event.target) {
++ // 适配 Element UI / Element Plus 的复选框 DOM 结构
++ const isCheckbox = !!event.target.closest('.el-checkbox');
++ const isLinkOrBtn = !!event.target.closest('button, a, input, .no-row-click');
++ if (isCheckbox || isLinkOrBtn) return;
++ }
++ // 切换选择:如果已选则取消,否则选中
++ const dom = showDayWork.value ? multipleTableRef.value : multipleTableWorkRef.value;
++ // toggleRowSelection 第二个参数可以显式设置选中/取消状态(Element UI 支持)
++ const currentlySelected = selectedRows.value.includes(row);
++ console.log('🚀 ~ onRowClick ~ currentlySelected:', currentlySelected);
++ dom.toggleRowSelection(row, !currentlySelected);
++};
+
+ const tableKey = (row: any) => row.id;
+
+@@ -391,6 +409,7 @@ const clickOpen = (row: any) => {
+ // 多选框处理
+ const handleSelectionChange = (selection: any[]) => {
+ state.checkedList = selection.map((item: any) => item.id);
++ selectedRows.value = selection;
+ };
+
+ // 提交日报
+@@ -454,6 +473,7 @@ const getDailyBookList = (doneTime: string) => {
+ const handleSelectionChangeWork = (selection: any[]) => {
+ state.checkList = selection.map((item: any) => item.id);
+ state.single = selection.length === 0;
++ selectedRows.value = selection;
+ };
+
+ // 移除日报
+diff --git a/src/views/project/attendance/component/detail.vue b/src/views/project/attendance/component/detail.vue
+new file mode 100644
+index 0000000..5649888
+--- /dev/null
++++ b/src/views/project/attendance/component/detail.vue
+@@ -0,0 +1,395 @@
++
++
++
++
++
++
++
++
++
++
++
++
++ 上一月
++
++
++ 下一月
++
++
++
{{ date }} — {{ userInfo.UserName }}出勤
++
++
全天考勤正常
++
当天存在异常迟到、早退、缺卡
++
当天提交过补卡申请
++
++
++
++
++
++
++
{{ data.day.split('-').slice(1).join('-') }}
++
++
++
++
++ {{ getTime(data.day, true) }}
++ 上班打卡
++
++
++ {{ getTime(data.day, false) }}
++ 下班打卡
++
++
++ 下班缺卡
++
++
++
++
++
++
{{ data.day.split('-').slice(1).join('-') }}
++

++
暂无打卡记录
++
++
++
++
++
++
++
++
++
++
+diff --git a/src/views/project/attendance/index.vue b/src/views/project/attendance/index.vue
+index b99239a..afdd998 100644
+--- a/src/views/project/attendance/index.vue
++++ b/src/views/project/attendance/index.vue
+@@ -4,12 +4,13 @@
+
+
+
+-
+-
++
++
+
+
+-
+-
++
++
++
+
+
+
+@@ -17,17 +18,16 @@
+
+
+
+-
++
+
+
+-
+
+ 搜索
+ 重置
+@@ -37,126 +37,46 @@
+
+
+
+-
++
+
+
+
+-
++ -->
+
+
+-
+-
++
++
++ 导出考勤列表
++
++
+
+
+-
+-
+-
++
++
+
+
+-
++
+
+
+-
+-
+-
+-
+-
++
+
+
+
+
+-
+-
+
+-
++
++
++
++
++
++
++
++
++ 导出
++
+
++
+
+
+
+
+
+diff --git a/src/views/project/attendanceRecords/index.vue b/src/views/project/attendanceRecords/index.vue
+index 51ba004..dc77189 100644
+--- a/src/views/project/attendanceRecords/index.vue
++++ b/src/views/project/attendanceRecords/index.vue
+@@ -8,18 +8,12 @@
+
+
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
++
++
++
+
+
++
+
+ 搜索
+ 重置
+@@ -49,9 +43,9 @@
+
+
+
+-
++
+
+- {{ parseTime(scope.row.clockDate, '{y}-{m}-{d}') }}
++ {{ parseTime(scope.row.printingDate, '{y}-{m}-{d}') }}
+
+
+
+@@ -69,29 +63,17 @@
+
+
+
+diff --git a/src/views/project/busSalaryDetails/component/add.vue b/src/views/project/busSalaryDetails/component/add.vue
+new file mode 100644
+index 0000000..eb3be2d
+--- /dev/null
++++ b/src/views/project/busSalaryDetails/component/add.vue
+@@ -0,0 +1,169 @@
++
++
++
++
++
++ 添加员工工资考核记录
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+diff --git a/src/views/project/busSalaryDetails/component/detail.vue b/src/views/project/busSalaryDetails/component/detail.vue
+index db5d506..ae82797 100644
+--- a/src/views/project/busSalaryDetails/component/detail.vue
++++ b/src/views/project/busSalaryDetails/component/detail.vue
+@@ -20,7 +20,7 @@
+
+
+-
+
+diff --git a/src/views/project/reissueCard/index.vue b/src/views/project/reissueCard/index.vue
+index 73081b0..dc5c70d 100644
+--- a/src/views/project/reissueCard/index.vue
++++ b/src/views/project/reissueCard/index.vue
+@@ -4,30 +4,15 @@
+
+
+
+-
+-
+-
+-
+-
+-
+-
++
++
+
+
+-
+-
++
++
++
+
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+
+ 搜索
+ 重置
+@@ -38,75 +23,41 @@
+
+
+
+-
++
+
+
+
+-
++
+
+-
++
++
+
+-
++ {{ filterStatus(scope.row.gangerOpinion) }}
+
+
+
+-
++
++
+
+- {{ parseTime(scope.row.gangerTime, '{y}-{m}-{d}') }}
+-
+-
+-
+-
+-
++ {{ filterStatus(scope.row.managerOpinion) }}
+
+
+
+-
+-
+- {{ parseTime(scope.row.userTime, '{y}-{m}-{d}') }}
+-
+-
+-
+-
+-
+- {{ parseTime(scope.row.managerTime, '{y}-{m}-{d}') }}
+-
+- -->
+-
+-
++
++
+
+- 详情
++
++ {{ scope.row.cardMode }}
++
+
+
+
+-
+
+
+-
+-
+-
+-
+- 同意
+- 拒绝
+-
+-
+-
+-
+-
+-
+-
+-
+-
+- 确定
+- 取消
+-
+-
+-
+
+
+
补卡申请
+@@ -173,15 +124,13 @@
+
+
+
+diff --git a/src/views/project/salaryExcel/component/detail.vue b/src/views/project/salaryExcel/component/detail.vue
+new file mode 100644
+index 0000000..02388d2
+--- /dev/null
++++ b/src/views/project/salaryExcel/component/detail.vue
+@@ -0,0 +1,233 @@
++
++
++
++
++ 详情
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++ 搜索
++ 重置
++
++
++
++
++
++
++
++
++ 金额:{{ money }}元
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+diff --git a/src/views/project/salaryExcel/component/documentsDetail/index.vue b/src/views/project/salaryExcel/component/documentsDetail/index.vue
+new file mode 100644
+index 0000000..3a64ee2
+--- /dev/null
++++ b/src/views/project/salaryExcel/component/documentsDetail/index.vue
+@@ -0,0 +1,190 @@
++
++
++
++
++
++

++

++
✖
++
++
++
++
++
++
++
+diff --git a/src/views/project/salaryExcel/component/uploadSalary.vue b/src/views/project/salaryExcel/component/uploadSalary.vue
+new file mode 100644
+index 0000000..695d8e7
+--- /dev/null
++++ b/src/views/project/salaryExcel/component/uploadSalary.vue
+@@ -0,0 +1,167 @@
++
++
++
++
++ 上传工资表
++
++
++
++
++
++
++
++
++
++
++ {{ BASE_URL }}
++ 111
++
++
++
++ 选择表格
++
++
++ 限制1个文件,新文件将覆盖旧文件
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+diff --git a/src/views/project/salaryExcel/index.vue b/src/views/project/salaryExcel/index.vue
+index 3bc4c76..7f784ed 100644
+--- a/src/views/project/salaryExcel/index.vue
++++ b/src/views/project/salaryExcel/index.vue
+@@ -43,23 +43,23 @@
+
+
+
+-
++
+
+
+
+
+diff --git a/src/views/project/subManagementUser/component/ConstructionUserDetail.vue b/src/views/project/subManagementUser/component/ConstructionUserDetail.vue
+index 73907f6..596718e 100644
+--- a/src/views/project/subManagementUser/component/ConstructionUserDetail.vue
++++ b/src/views/project/subManagementUser/component/ConstructionUserDetail.vue
+@@ -6,7 +6,11 @@
+
+
+
+-
++
+
+
+
+diff --git a/src/views/project/subManagementUser/index.vue b/src/views/project/subManagementUser/index.vue
+index ddc5af4..aa34d46 100644
+--- a/src/views/project/subManagementUser/index.vue
++++ b/src/views/project/subManagementUser/index.vue
+@@ -517,6 +517,7 @@ const { proxy } = getCurrentInstance() as any;
+ const { type_of_work, user_sex_type, user_clock_type, user_file_type, user_status_type, wage_measure_unit_type } = toRefs(
+ proxy?.useDict('type_of_work', 'user_sex_type', 'user_clock_type', 'user_file_type', 'user_status_type', 'wage_measure_unit_type')
+ );
++console.log('🚀 ~ user_sex_type:', user_sex_type);
+ // 获取用户 store
+ const userStore = useUserStoreHook();
+ // 从 store 中获取项目列表和当前选中的项目
+@@ -573,7 +574,7 @@ const initFormData: ConstructionUserForm = {
+ nickName: undefined,
+ facePic: undefined,
+ userName: undefined,
+- projectId: currentProject.value?.id,
++ projectId: currentProject.value.id,
+ contractorId: undefined,
+ teamId: undefined,
+ status: undefined,
+@@ -610,7 +611,7 @@ const data = reactive>({
+ openid: undefined,
+ nickName: undefined,
+ userName: undefined,
+- projectId: currentProject.value?.id,
++ projectId: currentProject.value.id,
+ contractorId: undefined,
+ teamId: undefined,
+ status: undefined,
+@@ -778,7 +779,7 @@ const getContractorList = async () => {
+ const res = await listContractor({
+ pageNum: 1,
+ pageSize: 20,
+- projectId: currentProject.value?.id
++ projectId: currentProject.value.id
+ });
+ contractorOpt.value = res.rows.map((contractor: ContractorVO) => ({
+ value: contractor.id,
+@@ -904,7 +905,7 @@ const downloadTemplate = async () => {
+ text: 'Loading',
+ background: 'rgba(0, 0, 0, 0.7)'
+ });
+- const res = await dowloadConstructionUserTemplate({ projectId: currentProject.value?.id });
++ const res = await dowloadConstructionUserTemplate({ projectId: currentProject.value.id });
+ loadingInstance.close();
+ };
+
+@@ -954,7 +955,7 @@ const submitForm = () => {
+ console.log(valid);
+ if (valid) {
+ buttonLoading.value = true;
+- form.value.projectId = currentProject.value?.id;
++ form.value.projectId = currentProject.value.id;
+ if (form.value.id) {
+ await updateConstructionUser(form.value).finally(() => (buttonLoading.value = false));
+ } else {
+@@ -975,7 +976,7 @@ const handleJoinBlacklist = async (row?: ConstructionUserVO) => {
+ await proxy?.$modal.confirm('确认要将该员工加入黑名单吗?').finally(() => (loading.value = false));
+ await addConstructionBlacklist({
+ userId: row.id,
+- projectId: currentProject.value?.id
++ projectId: currentProject.value.id
+ });
+ proxy?.$modal.msgSuccess('加入成功');
+ await getList();
+@@ -1049,7 +1050,7 @@ const setSalary = async () => {
+ const handlePlayCardStatus = async (e) => {
+ playCardLoding.value = true;
+ const clock = e ? 1 : 0;
+- await updateConstructionUserPlayCardStatus({ projectId: currentProject.value?.id, clock });
++ await updateConstructionUserPlayCardStatus({ projectId: currentProject.value.id, clock });
+ proxy?.$modal.msgSuccess('修改成功');
+ getList();
+ playCardLoding.value = false;
+@@ -1066,7 +1067,7 @@ const handleClockStatus = async (row: ConstructionUserVO) => {
+
+ //监听项目id刷新数据
+ const listeningProject = watch(
+- () => currentProject.value?.id,
++ () => currentProject.value.id,
+ (nid, oid) => {
+ queryParams.value.projectId = nid;
+ form.value.projectId = nid;
+diff --git a/src/views/project/subcontract/index.vue b/src/views/project/subcontract/index.vue
+index 28a9c25..292ff57 100644
+--- a/src/views/project/subcontract/index.vue
++++ b/src/views/project/subcontract/index.vue
+@@ -231,7 +231,8 @@ const reset = () => {
+ /** 搜索按钮操作 */
+ const handleQuery = () => {
+ queryParams.value.pageNum = 1;
+- if (contractorList.value.length == 1) queryParams.value.contractorId = contractorList.value[0].id;
++ console.log('🚀 ~ handleQuery ~ contractorList.value:', contractorList.value);
++ if (contractorList.value?.length == 1) queryParams.value.contractorId = contractorList.value[0].id;
+ getList();
+ };
+
+diff --git a/src/views/project/workWage/index.vue b/src/views/project/workWage/index.vue
+index caecbf2..38ccf87 100644
+--- a/src/views/project/workWage/index.vue
++++ b/src/views/project/workWage/index.vue
+@@ -4,16 +4,16 @@
+
+
+
+-
+-
++
++
+
+
+
+-
++
+
+
+-
+-
+-
+-
+-
+-
+-
+- {{ scope.row.isSpecialType == 1 ? '是' : '否' }}
+-
+-
+-
++
+
+- {{ scope.row.wageCalculationType == 1 ? '计时' : '计件' }}
++
+
+
+-
+-
+- {{ proxy.formatPrice(scope.row.wage) }}
+-
+-
+-
+-
+-
+-
+-
+-
+-
++
++
+
+
+
+@@ -103,32 +80,19 @@
+
+-
+-
++
++
+
+
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
++
++
+
+
+-
+-
+-
+
+
+
+
+
+
+-
++
++ -->
+
+
+
+diff --git a/src/views/safety/safetyLog/component/SafetyLogDetailDialog.vue b/src/views/safety/safetyLog/component/SafetyLogDetailDialog.vue
+index 2d57f1e..3646189 100644
+--- a/src/views/safety/safetyLog/component/SafetyLogDetailDialog.vue
++++ b/src/views/safety/safetyLog/component/SafetyLogDetailDialog.vue
+@@ -2,70 +2,63 @@
+
+ 安全日志
+
+- 记录人:{{ safetyLogDetail?.creator?.name }}
+- 记录时间:{{ safetyLogDetail?.createTime }}
++ 记录人:{{ safetyLogDetail?.fill }}
++ 记录时间:{{ safetyLogDetail?.createdAt }}
+
+
+- {{ currentProject?.name }}
++ {{ safetyLogDetail?.projectName }}
++ {{ safetyLogDetail?.dateOfOccurrence }}
+
+- {{ safetyLogDetail?.dateOfOccurrence }}
+-
+-
++
+ 最高:{{ safetyLogDetail?.airTemperatureMax }}(℃)
+ 最低:{{ safetyLogDetail?.airTemperatureMin }}(℃)
+
+-
+-
++
++ {{ safetyLogDetail?.climateName }}
+
+-
++
+ {{ safetyLogDetail?.progress }}
+
+-
++
+ {{ safetyLogDetail?.jobContent }}
+
+-
+- {{ safetyLogDetail?.discloseCondition }}
++
++ {{ safetyLogDetail?.discloseTheFacts }}
+
+-
+- {{ safetyLogDetail?.activityCondition }}
++
++ {{ safetyLogDetail?.progressOfActivity }}
+
+-
+- {{ safetyLogDetail?.examineCondition }}
++
++ {{ safetyLogDetail?.examine }}
+
+-
+- {{ safetyLogDetail?.implementCondition }}
++
++ {{ safetyLogDetail?.implementation }}
+
+-
+- {{ safetyLogDetail?.safetyInspectionCondition }}
++
++ {{ safetyLogDetail?.safetyInspectionSituation }}
+
+- {{ safetyLogDetail?.stoppageOrOvertime }}
++ {{ safetyLogDetail?.stoppageOrOvertime }}
+
+-
+- {{ safetyLogDetail?.otherCondition }}
++
++ {{ safetyLogDetail?.otherRecords }}
+
+-
++
+
+-
+-
+- {{ item.originalName }}
+-
+-
+-
+-
+-
+-
+-
+- {{ item.originalName }}
+-
+-
+-
+-
+-
++
++ {{ item.name }}
++
+
+
+- {{ safetyLogDetail?.remark }}
+-
++
+
+
+
+@@ -88,6 +81,8 @@ import { OssVO } from '@/api/system/oss/types';
+ interface Props {
+ safetyLogId?: string | number;
+ }
++const BASE_URL = import.meta.env.VITE_APP_BASE_API_GO;
++console.log('🚀 ~ BASE_URL:', BASE_URL);
+
+ const { proxy } = getCurrentInstance() as ComponentInternalInstance;
+ const { weather_type } = toRefs(proxy?.useDict('weather_type'));
+@@ -105,7 +100,7 @@ const fileUrl = ref('');
+ const get = async () => {
+ loading.value = true;
+ const res = await getSafetyLog(props.safetyLogId);
+- if (res.data && res.code === 200) {
++ if (res.data && res.code === 0) {
+ safetyLogDetail.value = res.data;
+ if (res.data.fileId) {
+ const fileRes = await listByIds(res.data.fileId.split(','));
+diff --git a/src/views/safety/safetyLog/index.vue b/src/views/safety/safetyLog/index.vue
+index 97b253b..3328c84 100644
+--- a/src/views/safety/safetyLog/index.vue
++++ b/src/views/safety/safetyLog/index.vue
+@@ -1,16 +1,11 @@
+
+
+-
++
+
+
+
+-
+-
+-
+-
+-
++
++
+
+
+ 搜索
+@@ -25,23 +20,14 @@
+
+
+
+- 新增
+-
+-
+-
+-
+- 批量删除
+-
++ 新增
+
+
+- 导出
++ 上传附件
+
+
+
+
+-
+
+
+
+@@ -55,79 +41,134 @@
+ {{ parseTime(scope.row.dateOfOccurrence, '{y}-{m}-{d}') }}
+
+
+-
+-
+-
++
++
+
+
+
+-
++
+ 详情
+
+
+- 删除
++ 删除
+
+
+
+
+
+-
++
+
+
+
+-
++
+
+-
+-
++
+
+-
+-
++
++
++ ℃
++
+
+-
+-
++
++
++ ℃
++
+
+-
+-
+-
++
++
++
+
+
+-
+-
++
++
+
+-
+-
++
++
+
+-
+-
++
++
+
+-
+-
++
++
+
+-
+-
++
++
+
+-
+-
++
++
+
+-
+-
++
++
+
+-
+-
++
++
+
+-
+-
++
++
+
+-
+-
++
++
+
+
+-
++
+
+
+
+@@ -137,6 +178,7 @@
+
+
+
++
+
+
+
+@@ -148,11 +190,13 @@ import { addSafetyLog, delSafetyLog, getSafetyLog, listSafetyLog, updateSafetyLo
+ import { SafetyLogForm, SafetyLogQuery, SafetyLogVO } from '@/api/safety/safetyLog/types';
+ import { useUserStoreHook } from '@/store/modules/user';
+ import { dayjs } from 'element-plus';
++import { busHseSecurityLogList } from '@/api/project/goUser/index';
+
+ import SafetyLogDetailDialog from '@/views/safety/safetyLog/component/SafetyLogDetailDialog.vue';
+
+ const { proxy } = getCurrentInstance() as ComponentInternalInstance;
+ const { weather_type } = toRefs(proxy?.useDict('weather_type'));
++
+ // 获取用户 store
+ const userStore = useUserStoreHook();
+ // 从 store 中获取项目列表和当前选中的项目
+@@ -173,9 +217,10 @@ const dialog = reactive({
+ title: ''
+ });
+
+-const initFormData: SafetyLogForm = {
++const initFormData: any = {
+ id: undefined,
+- projectId: currentProject.value?.id,
++ projectId: currentProject.value.goId,
++ file: undefined,
+ dateOfOccurrence: undefined,
+ airTemperatureMax: undefined,
+ airTemperatureMin: undefined,
+@@ -198,7 +243,7 @@ const data = reactive>({
+ queryParams: {
+ pageNum: 1,
+ pageSize: 10,
+- projectId: currentProject.value?.id,
++ projectId: currentProject.value.goId,
+ dateOfOccurrence: undefined,
+ airTemperatureMax: undefined,
+ airTemperatureMin: undefined,
+@@ -214,8 +259,8 @@ const data = reactive>({
+ otherCondition: undefined,
+ remark: undefined,
+ creatorName: undefined,
+- orderByColumn: "createTime",
+- isAsc: "desc",
++ orderByColumn: 'createTime',
++ isAsc: 'desc',
+ params: {}
+ },
+ rules: {
+@@ -229,9 +274,9 @@ const { queryParams, form, rules } = toRefs(data);
+ /** 查询安全日志列表 */
+ const getList = async () => {
+ loading.value = true;
+- const res = await listSafetyLog(queryParams.value);
+- safetyLogList.value = res.rows;
+- total.value = res.total;
++ const res = await busHseSecurityLogList(queryParams.value);
++ safetyLogList.value = res.data.list;
++ total.value = res.data.total;
+ loading.value = false;
+ };
+
+@@ -273,32 +318,17 @@ const handleShowDialog = (row?: SafetyLogVO) => {
+ currentSafetyLogId.value = row.id;
+ showDetailDialog.value = true;
+ };
+-
+-/** 新增按钮操作 */
+-const handleAdd = () => {
+- reset();
+- dialog.visible = true;
+- dialog.title = '添加安全日志';
+-};
+-
+-/** 修改按钮操作 */
+-const handleUpdate = async (row?: SafetyLogVO) => {
+- reset();
+- const _id = row?.id || ids.value[0];
+- const res = await getSafetyLog(_id);
+- Object.assign(form.value, res.data);
+- dialog.visible = true;
+- dialog.title = '修改安全日志';
+-};
+-
+ /** 提交按钮 */
++const uploadRef = ref();
+ const submitForm = () => {
+ safetyLogFormRef.value?.validate(async (valid: boolean) => {
+ if (valid) {
+ buttonLoading.value = true;
+- form.value.projectId = currentProject.value?.id;
+- if (form.value.id) {
+- await updateSafetyLog(form.value).finally(() => (buttonLoading.value = false));
++ form.value.projectId = currentProject.value?.goId;
++ if (fileStatus.value) {
++ await uploadRef.value.submitUpload().finally((res) => {
++ buttonLoading.value = false;
++ });
+ } else {
+ await addSafetyLog(form.value).finally(() => (buttonLoading.value = false));
+ }
+@@ -318,20 +348,28 @@ const handleDelete = async (row?: SafetyLogVO) => {
+ await getList();
+ };
+
+-/** 导出按钮操作 */
+-const handleExport = () => {
+- proxy?.download(
+- 'safety/safetyLog/export',
+- {
+- ...queryParams.value
+- },
+- `safetyLog_${new Date().getTime()}.xlsx`
+- );
++/** 新增按钮操作 */
++const fileStatus = ref(false);
++const handleAdd = (type?: string) => {
++ reset();
++ if (weather_type.value.length == 5) {
++ weather_type.value = weather_type.value.filter((item) => item.value != '3');
++ weather_type.value[2].value = '3';
++ }
++ console.log('🚀 ~ handleAdd ~ type:', type);
++ if (type == 'file') {
++ fileStatus.value = true;
++ } else {
++ fileStatus.value = false;
++ }
++
++ dialog.visible = true;
++ dialog.title = '添加安全日志';
+ };
+
+ //监听项目id刷新数据
+ const listeningProject = watch(
+- () => currentProject.value?.id,
++ () => currentProject.value.goId,
+ (nid, oid) => {
+ queryParams.value.projectId = nid;
+ form.value.projectId = nid;
+diff --git a/src/views/safety/safetyWeeklyReport/component/add.vue b/src/views/safety/safetyWeeklyReport/component/add.vue
+new file mode 100644
+index 0000000..4083477
+--- /dev/null
++++ b/src/views/safety/safetyWeeklyReport/component/add.vue
+@@ -0,0 +1,110 @@
++
++
++
++
++
++ 添加安全周期
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+diff --git a/src/views/safety/safetyWeeklyReport/component/documentsDetail/index.vue b/src/views/safety/safetyWeeklyReport/component/documentsDetail/index.vue
+new file mode 100644
+index 0000000..5d5fbaa
+--- /dev/null
++++ b/src/views/safety/safetyWeeklyReport/component/documentsDetail/index.vue
+@@ -0,0 +1,186 @@
++
++
++
++
++
++

++

++
✖
++
++
++
++
++
++
++
+diff --git a/src/views/safety/safetyWeeklyReport/component/documentsEdit/index.vue b/src/views/safety/safetyWeeklyReport/component/documentsEdit/index.vue
+new file mode 100644
+index 0000000..3059b35
+--- /dev/null
++++ b/src/views/safety/safetyWeeklyReport/component/documentsEdit/index.vue
+@@ -0,0 +1,186 @@
++
++
++
++
++
++

++

++
✖
++
++
++
++
++
++
++
+diff --git a/src/views/safety/safetyWeeklyReport/component/icon/full.png b/src/views/safety/safetyWeeklyReport/component/icon/full.png
+new file mode 100644
+index 0000000..973cf14
+Binary files /dev/null and b/src/views/safety/safetyWeeklyReport/component/icon/full.png differ
+diff --git a/src/views/safety/safetyWeeklyReport/component/icon/suo.png b/src/views/safety/safetyWeeklyReport/component/icon/suo.png
+new file mode 100644
+index 0000000..80f2233
+Binary files /dev/null and b/src/views/safety/safetyWeeklyReport/component/icon/suo.png differ
+diff --git a/src/views/safety/safetyWeeklyReport/component/model.ts b/src/views/safety/safetyWeeklyReport/component/model.ts
+new file mode 100644
+index 0000000..90873c4
+--- /dev/null
++++ b/src/views/safety/safetyWeeklyReport/component/model.ts
+@@ -0,0 +1,58 @@
++export interface BusWeeklySecurityReportTableColumns {
++ id:number; // 主键ID
++ projectId:number; // 项目ID
++ projectName:string; // 项目名称
++ scope:string; // 周期范围
++ scopeEnd:string; // 周期范围结束
++ path:string; // 文件位置
++ createBy:string; // 创建者
++ updateBy:string; // 更新者
++ createdAt:string; // 创建时间
++}
++
++
++export interface BusWeeklySecurityReportInfoData {
++ id:number|undefined; // 主键ID
++ projectId:number|undefined; // 项目ID
++ projectName:string|undefined; // 项目名称
++ scope:string|undefined; // 周期范围
++ scopeEnd:string|undefined; // 周期范围结束
++ path:string|undefined; // 文件位置
++ createBy:string|undefined; // 创建者
++ updateBy:string|undefined; // 更新者
++ createdAt:string|undefined; // 创建时间
++ updatedAt:string|undefined; // 更新时间
++ deletedAt:string|undefined; // 删除时间
++}
++
++
++export interface BusWeeklySecurityReportTableDataState {
++ ids:any[];
++ tableData: {
++ data: Array;
++ total: number;
++ loading: boolean;
++ param: {
++ pageNum: number;
++ pageSize: number;
++ id: number|undefined;
++ projectId: number|undefined;
++ projectName: string|undefined;
++ scope: string|undefined;
++ scopeEnd: string|undefined;
++ path: string|undefined;
++ createBy: string|undefined;
++ updateBy: string|undefined;
++ createdAt: string|undefined;
++ dateRange: string[];
++ };
++ };
++}
++
++
++export interface BusWeeklySecurityReportEditState{
++ loading:boolean;
++ isShowDialog: boolean;
++ formData:BusWeeklySecurityReportInfoData;
++ rules: object;
++}
+\ No newline at end of file
+diff --git a/src/views/safety/safetyWeeklyReport/index.vue b/src/views/safety/safetyWeeklyReport/index.vue
+index 2ac4adf..670cfb7 100644
+--- a/src/views/safety/safetyWeeklyReport/index.vue
++++ b/src/views/safety/safetyWeeklyReport/index.vue
+@@ -1,112 +1,95 @@
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+- 搜索
+- 重置
+-
+-
+-
+-
+-
+-
+-
+-
++
++
++
++
++
++
++
++
++
++
++
++
++ 搜索
++ 重置
++
++
++
++
+
+
+- 新增
+-
+-
+- 新增
+- 批量删除
+-
+
+
+- 导出
++ 删除
+
+-
+
+-
+-
+-
++
++
+
+-
+-
+-
++
++
++
+
+- {{ parseTime(scope.row.scope, '{y}-{m}-{d}') }} 至 {{ parseTime(scope.row.scopeEnd, '{y}-{m}-{d}') }}
++ {{ scope.row.scope + '至' + scope.row.scopeEnd }}
+
+
+-
+-
+-
++
++
+
+-
+-
+- 修改
+-
+-
+- 删除
+-
+-
++ {{ scope.row.createdAt }}
++
++
++
++
++ 预览
++ 修改
++ 删除
+
+
+
+-
+-
++
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
++
++
++
+
+
+-
+-
++
+diff --git a/src/views/safety/teamMeeting/component/TeamMeetingDetailDrawer.vue b/src/views/safety/teamMeeting/component/TeamMeetingDetailDrawer.vue
+index 7ead441..b344963 100644
+--- a/src/views/safety/teamMeeting/component/TeamMeetingDetailDrawer.vue
++++ b/src/views/safety/teamMeeting/component/TeamMeetingDetailDrawer.vue
+@@ -3,19 +3,17 @@
+
+ {{ teamMeetingDetail?.compereName }}
+
+-
+- {{teamMeetingDetail?.participantList.map(item => item.name).join(",")}}
++ {{ item }},
+
+ {{ teamMeetingDetail?.teamName }}
+- {{ teamMeetingDetail?.contractorName }}
+- {{ dayjs(teamMeetingDetail?.meetingDate).format('YYYY 年 MM 月 DD 日')
+- }}
+- {{ teamMeetingDetail?.createTime }}
++ {{ teamMeetingDetail?.labourserviceName }}
++ {{ dayjs(teamMeetingDetail?.meetingDate).format('YYYY 年 MM 月 DD 日') }}
++ {{ teamMeetingDetail?.createdAt }}
+ {{ teamMeetingDetail?.content }}
+
+
+-
+-
++
++
+
+
+
+@@ -37,9 +35,10 @@ const loading = ref(false);
+ const teamMeetingDetail = ref();
+ const get = async () => {
+ loading.value = true;
+- const res = await getTeamMeeting(props.teamMeetingId);
+- if (res.data && res.code === 200) {
++ const res = await getTeamMeeting({ id: props.teamMeetingId });
++ if (res.data && res.code === 0) {
+ teamMeetingDetail.value = res.data;
++ teamMeetingDetail.value.pictureUrlList = res.data?.picture.split(',');
+ }
+ loading.value = false;
+ };
+diff --git a/src/views/safety/teamMeeting/index.vue b/src/views/safety/teamMeeting/index.vue
+index 5a45dfa..a6e4c2c 100644
+--- a/src/views/safety/teamMeeting/index.vue
++++ b/src/views/safety/teamMeeting/index.vue
+@@ -1,13 +1,11 @@
+
+
+-
++
+
+
+
+
+-
++
+
+
+ 搜索
+@@ -21,19 +19,6 @@
+
+
+
+-
+- 新增
+-
+-
+-
+-
+- 删除
+-
+-
+-
+
+
+
+@@ -42,11 +27,11 @@
+
+
+
+-
++
+
+
+
+- {{ scope.row.participantList.length + 1 }}
++ {{ scope.row.participantId.split(',').length }}
+
+
+
+@@ -54,38 +39,27 @@
+ {{ parseTime(scope.row.meetingDate, '{y}-{m}-{d}') }}
+
+
+-
+-
+-
++
+
+
+
+-
++
+ 详情
+
+-
+-
++
+ 删除
+
+
+
+
+
+-
+-
++
+
+
+
+
+
+-
++
+
+
+
+@@ -99,14 +73,12 @@
+
+
+
+-
++
+
+
+
+
+-
++
+
+
+
+@@ -136,9 +108,7 @@
+
+
+
+diff --git a/src/views/system/user/comm/roleInfo.vue b/src/views/system/user/comm/roleInfo.vue
+index c4f4ce5..6867a26 100644
+--- a/src/views/system/user/comm/roleInfo.vue
++++ b/src/views/system/user/comm/roleInfo.vue
+@@ -274,6 +274,7 @@ const initData = async () => {
+ try {
+ // 获取项目列表
+ const projectRes = await listProject();
++ console.log('🚀 ~ initData ~ projectRes:', projectRes);
+ projectOptions.value = projectRes.rows.map((item: any) => ({
+ id: item.id,
+ projectName: item.projectName,
+diff --git a/src/views/tender/supplierInput/index.vue b/src/views/tender/supplierInput/index.vue
+index 4c35487..86ed4f0 100644
+--- a/src/views/tender/supplierInput/index.vue
++++ b/src/views/tender/supplierInput/index.vue
+@@ -812,7 +812,7 @@ onUnmounted(() => {
+ }
+ }
+
+-.upload-file-list .ele-upload-list__item-content {
++.upload-file-list .upload-list__item-content {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+diff --git a/src/views/tool/gen/index.vue b/src/views/tool/gen/index.vue
+index b4df31b..451895d 100644
+--- a/src/views/tool/gen/index.vue
++++ b/src/views/tool/gen/index.vue
+@@ -113,8 +113,8 @@
+
+
+
diff --git a/src/views/dhr_demo/xunjianjihua.vue b/src/views/dhr_demo/xunjianjihua.vue
index f488edf..1f6d7fe 100644
--- a/src/views/dhr_demo/xunjianjihua.vue
+++ b/src/views/dhr_demo/xunjianjihua.vue
@@ -117,89 +117,10 @@
-
+
进度指标对比
-
-
-
-
-
-
-
-
-
平均完成度
-
- {{ averageRate.toFixed(1) }}%
-
-
-
-
-
-
-
-
-
-
-
完成率 {{ completionRate }}%
-
-
-
-
解决率 {{ resolutionRate }}%
-
-
-
-
及时率 {{ timelinessRate }}%
-
-
+
@@ -211,7 +132,7 @@
{{ completionRate }}%
@@ -220,7 +141,7 @@
{{ resolutionRate }}%
@@ -229,7 +150,7 @@
{{ timelinessRate }}%
@@ -441,9 +362,10 @@