Browse Source

运营管理

liuhairui 1 year ago
parent
commit
201ae59f9b

+ 8 - 0
src/api/yunyin/yunying.js

@@ -16,6 +16,14 @@ export const getStaffList = (params) => {
         params
     })
 }
+//3.修改员工资料
+export const ygjbzledit = (params) => {
+    return service({
+        url: '/mes_server/staff/edit',
+        method: 'post',
+        params
+    })
+}
 
 /** 产品管理 */
 //1.获取客户信息

+ 53 - 104
src/view/yunyin/chanpinziliao/chanpinziliao.vue

@@ -1,45 +1,48 @@
 <template>
   <div>
     <el-container>
+      <!--    左侧树侧形结构-->
       <el-aside width="270px">
-        <!--    左侧树侧形结构-->
-        <div class="JKWTree-tree" style="height: 400px">
-          <h3> 组织列表</h3>
+        <div class="JKWTree-tree" style="height: 600px">
+          <h3> 产品管理</h3>
           <el-tree :data="treeData" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
         </div>
       </el-aside>
+
       <!--  右侧内容区域 -->
       <el-container>
         <el-main>
+
           <!--      搜索框 -->
           <div class="gva-search-box">
             <el-form ref="elSearchFormRef" :inline="true" :model="searchInfo" class="demo-form-inline" :rules="searchRule" @keyup.enter="onSubmit">
               <!--          左侧查询输入框 -->
               <el-form-item>
-                <el-input v-model="searchInfo.keyword" placeholder="查询请输入员工编号或员工姓名" clearable style="width: 300px;"></el-input>
+                <el-input v-model="searchInfo.keyword" placeholder="请输入员工编号或员工姓名" clearable style="width: 200px;"></el-input>
               </el-form-item>
               <!--        查询和重置按钮 -->
               <el-form-item>
                 <el-button type="primary" icon="search" @click="onSubmit">查询</el-button>
-                <el-button icon="refresh" @click="onReset">重置</el-button>
+<!--                <el-button icon="refresh" @click="onReset">重置</el-button>-->
+                <el-button type="primary" icon="plus" @click="openDialog">新增</el-button>
               </el-form-item>
             </el-form>
           </div>
+
           <!--      表格及操作按钮 -->
           <div class="gva-table-box">
-            <div class="gva-btn-list">
-              <el-button type="primary" icon="plus" @click="openDialog">新增</el-button>
-            </div>
-
             <!--        数据表格 -->
             <el-table ref="multipleTable"
-                      style="width: 100%;height: 400px"
+                      style="width: 100%;height: 600px;"
+                      :row-class-name="tableRowClassName"
                       border
                       tooltip-effect="dark"
                       :data="tableData"
                       row-key="ID"
                       @selection-change="handleSelectionChange"
-                      @row-click="tableRowClick">
+                      @row-dblclick="updateCompanyFunc"
+                      @row-click="tableRowClick"
+                      :show-overflow-tooltip="true">
               <el-table-column type="selection" width="55" />
               <el-table-column align="left" label="客户编号" prop="客户编号" width="100" />
               <el-table-column align="left" label="产品编号" prop="产品编号" width="115" />
@@ -55,32 +58,26 @@
               <el-table-column align="left" label="U8UID" prop="U8UID" width="100" />
               <el-table-column align="left" label="最后修改" prop="Sys_id" width="160" />
               <el-table-column align="left" label="建档日期" prop="Sys_rq" width="160" />
-              <el-table-column align="left" label="更新日期" prop="Mod_rq" width="160" />
+              <el-table-column sortable align="left" label="更新日期" prop="Mod_rq" width="160" />
               <el-table-column align="left" label="UniqID" prop="UniqID" width="100" />
               <el-table-column align="left" label="最近接单时间" prop="receiveDate" width="160" />
               <el-table-column align="left" label="工艺" prop="gyData" width="100"/>
               <el-table-column align="left" label="印件数" prop="yjData" width="100" />
-              <el-table-column align="left" label="操作" min-width="120" fixed='right'>
-                <template #default="scope">
-                  <el-button type="primary" link icon="edit" class="table-button" @click="updateCompanyFunc(scope.row)">变更</el-button>
-                </template>
-              </el-table-column>
             </el-table>
-            <!--            <div class="gva-pagination">-->
-            <!--              <el-pagination layout="total, sizes, prev, pager, next, jumper" :current-page="page" :page-size="pageSize" :page-sizes="[5,10, 30, 50, 100]" :total="total" @current-change="handleCurrentChange" @size-change="handleSizeChange"/>-->
-            <!--            </div>-->
+<!--            <div class="gva-pagination">-->
+<!--              <el-pagination layout="total, sizes, prev, pager, next, jumper" :current-page="page" :page-size="pageSize" :page-sizes="[5,10, 30, 50, 100]" :total="total" @current-change="handleCurrentChange" @size-change="handleSizeChange"/>-->
+<!--            </div>-->
           </div>
 
           <!--      印件资料、工艺资料、印版资料、技术资料附件【按钮】-->
           <div>
-            <el-button type="primary" icon="" @click="showTable('印件资料')" @node-click="yjshowTable" style="margin-right: 2px;">印件资料</el-button>
-            <el-button type="primary" icon="" @click="showTable('工艺资料')" style="margin-right: 2px;">工艺资料</el-button>
-            <el-button type="primary" icon="" @click="showTable('印版资料')" style="margin-right: 2px;">印版资料</el-button>
+            <el-button type="primary" icon="" @click="showTable('印件资料')"  style="margin-right: 2px;">印件资料</el-button>
+            <el-button type="primary" icon="" @click="showTable('工艺资料')"  style="margin-right: 2px;">工艺资料</el-button>
+            <el-button type="primary" icon="" @click="showTable('印版资料')"  style="margin-right: 2px;">印版资料</el-button>
             <el-button type="primary" icon="" @click="showTable('技术资料附件')" style="margin-right: 2px;">技术资料附件</el-button>
           </div>
 
           <div v-if="currentTable === '印件资料'">
-            <!--      印件资料【表格】-->
             <el-table ref="multipleTable" style="width: 100%;height: 400px" border tooltip-effect="dark" :data="yjtableData" row-key="ID" @selection-change="handleSelectionChange">
               <el-table-column type="selection" width="55" />
               <el-table-column align="left" label="印件号" prop="yj_yjno"  width="80"/>
@@ -95,16 +92,10 @@
               <el-table-column align="left" label="建档用户" prop="sys_id" width="130" />
               <el-table-column align="left" label="建档日期" prop="sys_rq" width="160" />
               <el-table-column align="left" label="更新日期" prop="mod_rq" width="160"/>
-              <el-table-column align="left" label="操作" min-width="120" fixed='right'>
-                <template #default="scope">
-                  <el-button type="primary" link icon="edit" class="table-button" @click="updateCompanyFunc(scope.row)">变更</el-button>
-                </template>
-              </el-table-column>
             </el-table>
           </div>
 
           <div v-if="currentTable === '工艺资料'">
-            <!--      工艺资料【表格】-->
             <el-table ref="multipleTable" style="width: 100%;height: 400px" border tooltip-effect="dark" :data="gytableData" row-key="ID" @selection-change="handleSelectionChange">
               <el-table-column type="selection" width="55" />
               <el-table-column align="left" label="方案" prop="方案"  width="70"/>
@@ -128,37 +119,25 @@
               <el-table-column align="left" label="最后修改" prop="最后修改" width="160"/>
               <el-table-column align="left" label="建档日期" prop="建档日期" width="160"/>
               <el-table-column align="left" label="更新日期" prop="更新日期" width="160"/>
-              <el-table-column align="left" label="操作" min-width="120" fixed='right'>
-                <template #default="scope">
-                  <el-button type="primary" link icon="edit" class="table-button" @click="updateCompanyFunc(scope.row)">变更</el-button>
-                </template>
-              </el-table-column>
             </el-table>
           </div>
 
           <div v-if="currentTable === '印版资料'">
-            <!--      印版资料【表格】-->
             <el-table ref="multipleTable" style="width: 100%;height: 400px" border tooltip-effect="dark" :data="ybtableData" row-key="ID" @selection-change="handleSelectionChange">
               <el-table-column type="selection" width="55" />
               <el-table-column align="left" label="方案" prop="YB_方案"  width="100"/>
               <el-table-column align="left" label="印件号" prop="YB_Yjno" width="100" />
-              <!--              <el-table-column align="left" label="印版类别" prop="印版类别" width="100" />-->
+              <el-table-column align="left" label="印版类别" prop="印版类别" width="100" />
               <el-table-column align="left" label="存货编码" prop="存货编码" width="100"/>
               <el-table-column align="left" label="印版名称" prop="印版名称"  width="440"/>
               <el-table-column align="left" label="考核印数" prop="考核印数" width="100"/>
               <el-table-column align="left" label="建档用户" prop="建档用户" width="120" />
-              <!--              <el-table-column align="left" label="建档日期" prop="建档日期" width="160" />-->
+              <el-table-column align="left" label="建档日期" prop="建档日期" width="160" />
               <el-table-column align="left" label="更新日期" prop="更新日期" width="160" />
-              <el-table-column align="left" label="操作"  min-width="120" fixed='right'>
-                <template #default="scope">
-                  <el-button type="primary" link icon="edit" class="table-button" @click="updateCompanyFunc(scope.row)">变更</el-button>
-                </template>
-              </el-table-column>
             </el-table>
           </div>
 
           <div v-if="currentTable === '技术资料附件'">
-            <!--      技术资料附件【表格】-->
             <el-table ref="multipleTable" style="width: 100%;height: 400px" border tooltip-effect="dark" :data="jstableData" row-key="ID" @selection-change="handleSelectionChange">
               <el-table-column type="selection" width="55" />
               <el-table-column align="left" label="序号" prop="序号"  width="100"/>
@@ -169,15 +148,9 @@
               <el-table-column align="left" label="建档用户" prop="建档用户" width="100"/>
               <el-table-column align="left" label="建档日期" prop="建档日期" width="160" />
               <el-table-column align="left" label="更新日期" prop="更新日期" width="160" />
-              <el-table-column align="left" label="操作" min-width="120" fixed='right'>
-                <template #default="scope">
-                  <el-button type="primary" link icon="edit" class="table-button" @click="updateCompanyFunc(scope.row)">变更</el-button>
-                </template>
-              </el-table-column>
             </el-table>
           </div>
 
-
           <!-- 弹窗 -->
           <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="type==='create'?'添加产品资料':'修改产品资料'" destroy-on-close>
             <el-row>
@@ -347,20 +320,16 @@ defineOptions({   name: 'Company'})
 
 // =========== 左侧树侧形结构 ===========
 const treeData = ref({})
-const defaultProps = {
-  children: 'children',
-  label: '客户名称'
-};
 const getCustomdata = async () => {
   try {
-    const data  = await getCustom();
-    if(data.code === 0){
-      treeData.value = data.data
-    }else {
-      console.error(data.msg);
-    }
+    const response = await getCustom(); // 调用接口获取数据
+    const formatCustomData = response.data.map(item => ({
+      children: [],
+      label: `${item.客户编号}【${item.客户名称}】`,
+    }));
+    treeData.value = formatCustomData
   } catch (error) {
-    console.error(error)
+    console.error('Error fetching custom data:', error);
   }
 }
 getCustomdata()
@@ -368,17 +337,11 @@ getCustomdata()
 //点击左侧树形获取列表
 const tableData = reactive([])
 const handleNodeClick = async (node) => {
-  //通过 custom_code 客户编号 获取列表数据
   const custom_code = node.客户编号;
-  try {
-    const WorkListdata = await getProduct({ custom_code:custom_code, limit: pageSize.value, page: page.value });
-    tableData.splice(0, tableData.length, ...WorkListdata.data.data);//表格
-    total.value = tableData.length;//共多少条
-  } catch (error) {
-    console.error(error);
-  }
+  const WorkListdata = await getProduct({ custom_code:custom_code, limit: pageSize.value, page: page.value });
+  tableData.splice(0, tableData.length, ...WorkListdata.data.data);//表格
+  total.value = tableData.length;//共多少条
 };
-
 //印件资料
 const yjtableData = reactive([])
 //工艺资料
@@ -391,14 +354,11 @@ const tableRowClick = async (row) => {
   //点击表格获取 产品编号
   const product_code = row.产品编号;
   // console.log(product_code);
-  try {
-    const res = await getProductData({ product_code:product_code, limit: pageSize.value, page: page.value });//接口
+    const res = await getProductData({product_code:product_code});//接口
+    console.log(res);
     yjtableData.splice(0, yjtableData.length, ...res.data.yjData);//印件资料表格
     gytableData.splice(0, gytableData.length, ...res.data.gyData);//工艺资料表格
     ybtableData.splice(0, ybtableData.length, ...res.data.ybData);//印版资料表格
-  } catch (error) {
-    console.error( error);
-  }
 };
 
 // 分页
@@ -538,39 +498,24 @@ const onDelete = async() => {
 //行为控制标记(弹窗内部需要增还是改)
 const type = ref('')
 
-//更新行
+//修改
 const updateCompanyFunc = async (row) => {
   const product_code = row.产品编号;
   console.log(product_code);
-  // try {
-  //   const res = await getProductData({ product_code });
-  //   // 根据需要进行操作,比如更新表单数据或显示弹窗等
-  //   // if (res.code === 0) {
-  //   //   formData.value = res.data.recompany;
-  //   //   dialogFormVisible.value = true;
-  //   // }
-  // } catch (error) {
-  //   // 处理错误
-  //   console.error('Error in updateCompanyFunc:', error);
-  // }
-  // dialogFormVisible.value = true; // 如果需要显示弹窗,取消注释此行
-};
-
-// 删除行
-const deleteCompanyFunc = async (row) => {
-  const res = await deleteCompany({ ID: row.ID })
-  if (res.code === 0) {
-    ElMessage({
-      type: 'success',
-      message: '删除成功'
-    })
-    if (tableData.value.length === 1 && page.value > 1) {
-      page.value--
-    }
-    getTableData()
+  try {
+    // const res = await getProductData({ product_code });
+    // console.log(res)
+    // 根据需要进行操作,比如更新表单数据或显示弹窗等
+    // if (res.code === 0) {
+    //   formData.value = res.data.recompany;
+    //   dialogFormVisible.value = true;
+    // }
+  } catch (error) {
+    // 处理错误
+    console.error('Error in updateCompanyFunc:', error);
   }
-}
-
+  dialogFormVisible.value = true;
+};
 // 弹窗控制标记
 const dialogFormVisible = ref(false)
 
@@ -663,4 +608,8 @@ const enterDialog = async () => {
 .JKWTree-content {
   flex: 1;
 }
+.el-table .warning-row {
+  background: oldlace;
+}
+
 </style>

+ 39 - 183
src/view/yunyin/renliziyuan/renyuanjibenziliao.vue

@@ -4,7 +4,7 @@
 			<!-- 左侧树形结构 -->
 			<el-aside width="270px">
 				<div class="JKWTree-tree" style="height: 500px">
-					<h3>组织列表</h3>
+					<h3>组织架构</h3>
 					<el-tree :data="treeData" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
 				</div>
 			</el-aside>
@@ -14,17 +14,17 @@
 				<el-main>
 					<!-- 搜索框 -->
 					<div class="gva-search-box">
-						<el-form ref="elSearchFormRef" :inline="true" :model="searchInfo" class="demo-form-inline"
-							:rules="searchRule" @keyup.enter="onSubmit">
+						<el-form ref="elSearchFormRef" :inline="true" :model="searchInfo" class="demo-form-inline" :rules="searchRule" @keyup.enter="onSubmit">
 							<!-- 左侧查询输入框 -->
 							<el-form-item>
-								<el-input v-model="searchInfo.ke" placeholder="查询请输入员工编号或员工姓名" clearable
-									style="width: 300px;"></el-input>
+								<el-input v-model="searchInfo.ke" placeholder="请输入员工编号或员工姓名" clearable style="width: 200px;"></el-input>
 							</el-form-item>
 							<!-- 右侧查询和重置按钮 -->
 							<el-form-item>
 								<el-button type="primary" icon="search" @click="onSubmit">查询</el-button>
-								<el-button icon="refresh" @click="onReset">重置</el-button>
+<!--								<el-button icon="refresh" @click="onReset">重置</el-button>-->
+                <el-button type="primary" icon="plus" @click="openDialog">新增</el-button>
+                <el-button type="primary" icon="el-icon-download" @click="showExportDialog">导出到Excel</el-button>
 							</el-form-item>
 						</el-form>
 					</div>
@@ -32,14 +32,6 @@
 					<!-- 表格及操作按钮 -->
 					<div class="gva-table-box">
 
-						<!-- 操作按钮部分 -->
-						<div class="gva-btn-list">
-							<el-button type="primary" icon="plus" @click="openDialog">新增</el-button>
-							<!-- 导出到Excel功能 -->
-							<el-button type="primary" icon="el-icon-download" style="margin-left: 10px;"
-								@click="showExportDialog">导出到Excel</el-button>
-						</div>
-
 						<!-- 导出字段选择对话框 -->
 						<el-dialog title="选择导出字段" :visible.sync="exportDialogVisible" width="30%">
 							<el-checkbox-group v-model="selectedExportFields">
@@ -58,7 +50,11 @@
 						<el-table ref="multipleTable"
                       style="width: 100%;height: 500px"
                       tooltip-effect="dark" :data="tableData" border
-							row-key="ID" @row-dblclick="handleRowDoubleClick" @selection-change="handleSelectionChange">
+							        row-key="ID"
+                      :row-class-name="tableRowClassName"
+                      @row-dblclick="updateCompanyFunc"
+                      @row-click="tableRowClick"
+                      @selection-change="handleSelectionChange">
 							<el-table-column type="selection" width="55" />
 							<el-table-column align="left" label="员工编号" prop="员工编号"  width="100" />
 							<el-table-column align="left" label="员工姓名" prop="员工姓名"  width="100"/>
@@ -80,20 +76,20 @@
 							<el-table-column align="left" label="创建用户" prop="sys_id" width="160" />
 							<el-table-column align="left" label="创建时间" prop="sys_rq" width="160" />
 							<el-table-column align="left" label="修改时间" prop="mod_rq" width="160" />
-							<el-table-column align="left" label="操作" min-width="120" fixed='right'>
-								<template #default="scope">
-									<el-button type="primary" link icon="edit" class="table-button"
-										@click="updateCompanyFunc(scope.row)">编辑</el-button>
-								</template>
-							</el-table-column>
+<!--							<el-table-column align="left" label="操作" min-width="120" fixed='right'>-->
+<!--								<template #default="scope">-->
+<!--									<el-button type="primary" link icon="edit" class="table-button"-->
+<!--										@click="updateCompanyFunc(scope.row)">编辑</el-button>-->
+<!--								</template>-->
+<!--							</el-table-column>-->
 						</el-table>
 
 						<!-- 分页 -->
-						<div class="gva-pagination">
-							<el-pagination layout="total, sizes, prev, pager, next, jumper" :current-page="page"
-								:page-size="pageSize" :page-sizes="[5,10, 30, 50, 100]" :total="total"
-								@current-change="handleCurrentChange" @size-change="handleSizeChange" />
-						</div>
+<!--						<div class="gva-pagination">-->
+<!--							<el-pagination layout="total, sizes, prev, pager, next, jumper" :current-page="page"-->
+<!--								:page-size="pageSize" :page-sizes="[5,10, 30, 50, 100]" :total="total"-->
+<!--								@current-change="handleCurrentChange" @size-change="handleSizeChange" />-->
+<!--						</div>-->
 					</div>
 
 					<!-- 弹窗 -->
@@ -197,21 +193,6 @@
 							</el-col>
 
 							<!-- 右侧图片 -->
-							<div>
-								<el-col :span="8">
-                  <el-upload
-                    action="/source/upload"
-                    accept=".jpg,.jpeg,.png,.gif,.JPG,.JPEG"
-                    :show-file-list="false"
-                    :on-change="handleLicensePreview"
-                    :before-upload="beforeLicenseUpload"
-                    :auto-upload="false"
-                    >
-                      <img v-if="form.img" :src="form.img" class="preach-img">
-                      <i v-else class="el-icon-plus avatar-uploader-icon"></i>
-                  </el-upload>
-								</el-col>
-							</div>
 
 						</el-row>
 
@@ -224,65 +205,7 @@
 						</template>
 					</el-dialog>
 
-					<!-- 详情展示弹窗 -->
-					<el-dialog v-model="detailShow" style="width: 1000px" lock-scroll :before-close="closeDetailShow"
-						title="查看员工基本资料管理" destroy-on-close>
-						<el-scrollbar height="550px">
-							<el-descriptions column="2" border>
-								<!-- 左侧部分 -->
-								<el-descriptions-item label="员工编号" :min-width="labelMinWidth">
-									{{ formData.employeeId }}
-								</el-descriptions-item>
-								<el-descriptions-item label="性别" :min-width="labelMinWidth">
-									{{ formData.gender }}
-								</el-descriptions-item>
-								<el-descriptions-item label="身份证" :min-width="labelMinWidth">
-									{{ formData.idCard }}
-								</el-descriptions-item>
-								<el-descriptions-item label="部分名称" :min-width="labelMinWidth">
-									{{ formData.sectionName }}
-								</el-descriptions-item>
-								<el-descriptions-item label="入职日期" :min-width="labelMinWidth">
-									{{ formData.employeeId }}
-								</el-descriptions-item>
-								<el-descriptions-item label="人员类别" :min-width="labelMinWidth">
-									{{ formData.gender }}
-								</el-descriptions-item>
-								<el-descriptions-item label="班次类型" :min-width="labelMinWidth">
-									{{ formData.idCard }}
-								</el-descriptions-item>
-								<el-descriptions-item label="工资表类别" :min-width="labelMinWidth">
-									{{ formData.sectionName }}
-								</el-descriptions-item>
-
-								<!-- 右侧部分 -->
-								<el-descriptions-item label="姓名" :min-width="labelMinWidth">
-									{{ formData.name }}
-								</el-descriptions-item>
-								<el-descriptions-item label="出生日期" :min-width="labelMinWidth">
-									{{ formData.birthdate }}
-								</el-descriptions-item>
-								<el-descriptions-item label="职务" :min-width="labelMinWidth">
-									{{ formData.position }}
-								</el-descriptions-item>
-								<el-descriptions-item label="部门编号" :min-width="labelMinWidth">
-									{{ formData.departmentId }}
-								</el-descriptions-item>
-								<el-descriptions-item label="转正日期" :min-width="labelMinWidth">
-									{{ formData.name }}
-								</el-descriptions-item>
-								<el-descriptions-item label="扣减司龄" :min-width="labelMinWidth">
-									{{ formData.birthdate }}
-								</el-descriptions-item>
-								<el-descriptions-item label="人员性质" :min-width="labelMinWidth">
-									{{ formData.position }}
-								</el-descriptions-item>
-								<el-descriptions-item label="工资性质" :min-width="labelMinWidth">
-									{{ formData.departmentId }}
-								</el-descriptions-item>
-							</el-descriptions>
-						</el-scrollbar>
-					</el-dialog>
+
 
 				</el-main>
 			</el-container>
@@ -296,7 +219,7 @@ import {createCompany, deleteCompany, deleteCompanyByIds, updateCompany, findCom
 import {getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDownloadFile} from '@/utils/format'
 import {ElMessage, ElMessageBox} from 'element-plus'
 import {ref, reactive} from 'vue'
-import {getDepartment,getStaffList} from '@/api/yunyin/yunying'
+import {getDepartment, getProductData, getStaffList, ygjbzledit} from '@/api/yunyin/yunying'
 defineOptions({name: 'Company'})
 
 // =========== 左侧树侧形结构 ===========
@@ -325,7 +248,7 @@ const handleNodeClick = async (node) => {
   //通过 department_code 编号 获取列表数据
   const department_code = node.编号;
   try {
-    const WorkListdata = await getStaffList({ department_code:department_code,limit: pageSize.value, page: page.value});//接口调用函数
+    const WorkListdata = await getStaffList({ department_code:department_code,limit: '', page: ''});//接口调用函数
     tableData.splice(0,tableData.length,...WorkListdata.data.list);//表格数据
     total.value = tableData.length;//共多少条
   } catch (error) {
@@ -401,9 +324,6 @@ const onSubmit = () => {
   })
 }
 
-
-
-
 // 查询
 const getTableData = async () => {
   const table = await getCompanyList({
@@ -421,6 +341,10 @@ const getTableData = async () => {
 getTableData()
 
 // ============== 表格控制部分结束 ===============
+const tableRowClick = async (row) => {
+  console.log(row);
+};
+
 
 // 获取需要的字典 可能为空 按需保留
 const setOptions = async () => {}
@@ -435,81 +359,17 @@ const handleSelectionChange = (val) => {
   multipleSelection.value = val
 }
 
-// 删除行
-const deleteRow = (row) => {
-  ElMessageBox.confirm('确定要删除吗?', '提示', {
-    confirmButtonText: '确定',
-    cancelButtonText: '取消',
-    type: 'warning'
-  }).then(() => {
-    deleteCompanyFunc(row)
-  })
-}
-
-// 批量删除控制标记
-const deleteVisible = ref(false)
-
-// 多选删除
-const onDelete = async () => {
-  const ids = []
-  if (multipleSelection.value.length === 0) {
-    ElMessage({
-      type: 'warning',
-      message: '请选择要删除的数据'
-    })
-    return
-  }
-  multipleSelection.value &&
-    multipleSelection.value.map(item => {
-      ids.push(item.ID)
-    })
-  const res = await deleteCompanyByIds({
-    ids
-  })
-  if (res.code === 0) {
-    ElMessage({
-      type: 'success',
-      message: '删除成功'
-    })
-    if (tableData.value.length === ids.length && page.value > 1) {
-      page.value--
-    }
-    deleteVisible.value = false
-    getTableData()
-  }
-}
-
 // 行为控制标记(弹窗内部需要增还是改)
 const type = ref('')
 
-// 更新行
+//修改
 const updateCompanyFunc = async (row) => {
-  // const res = await findCompany({ ID: row.ID })
-  // type.value = 'update'
-  // if (res.code === 0) {
-  //     formData.value = res.data.recompany
-  //     dialogFormVisible.value = true
-  // }
-  dialogFormVisible.value = true
-}
-
-// 删除行
-const deleteCompanyFunc = async (row) => {
-  const res = await deleteCompany({
-    ID: row.ID
-  })
-  if (res.code === 0) {
-    ElMessage({
-      type: 'success',
-      message: '删除成功'
-    })
-    if (tableData.value.length === 1 && page.value > 1) {
-      page.value--
-    }
-    getTableData()
-  }
-}
-
+  const product_code = row.员工编号;
+  console.log(product_code);
+  // const data = await ygjbzledit({ product_code: product_code });
+  // console.log(data);
+  dialogFormVisible.value = true;
+};
 // 弹窗控制标记
 const dialogFormVisible = ref(false)
 
@@ -523,14 +383,7 @@ const openDetailShow = () => {
 
 // 打开详情
 const getDetails = async (row) => {
-  // 打开弹窗
-  // const res = await findCompany({ ID: row.ID })
-  // if (res.code === 0) {
-  //   formData.value = res.data.recompany
-  //   openDetailShow()
-  // }
   detailShow.value = true
-
 }
 
 // 关闭详情弹窗
@@ -627,4 +480,7 @@ const enterDialog = async () => {
 	.file-input {
 		display: none;
 	}
+  .el-table .warning-row {
+    background: oldlace;
+  }
 </style>

+ 195 - 512
src/view/yunyin/shengchanguanli/gongdanshengchan.vue

@@ -1,542 +1,225 @@
 <template>
   <div>
     <el-container>
+      <!-- 左侧树形结构 -->
       <el-aside width="340px">
         <div class="JKWTree-tree">
           <h3> 组织列表</h3>
+          <el-tree :data="sctreeData" :props="defaultProps" @node-click="schandleNodeClick"></el-tree>
           <el-tree :data="treeData" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
         </div>
       </el-aside>
       <el-container>
-<!--        <el-header>dd</el-header>-->
         <el-main>
-			
-         <!-- 搜索框 -->
-         <div class="gva-search-box">
-           <el-form ref="elSearchFormRef" :inline="true" :model="searchInfo" class="demo-form-inline" :rules="searchRule" @keyup.enter="onSubmit">
-         
-             <!-- 左侧查询输入框 -->
-             <el-form-item>
-               <el-input v-model="searchInfo.keyword" placeholder="" clearable style="width: 300px;"></el-input>
-             </el-form-item>
-         
-             <!-- 查询和重置按钮 -->
-             <el-form-item>
-               <el-button type="primary" icon="search" @click="onSubmit">查询</el-button>
-               <el-button icon="refresh" @click="onReset">重置</el-button>
-             </el-form-item>
-           </el-form>
-         </div>
-		 
+
+          <!-- 搜索框 -->
+          <div class="gva-search-box">
+            <el-form ref="elSearchFormRef" :inline="true" class="demo-form-inline" >
+
+              <!-- 左侧查询输入框 -->
+              <el-form-item>
+                <el-input  placeholder="" clearable style="width: 300px;"></el-input>
+              </el-form-item>
+
+              <!-- 查询和重置按钮 -->
+              <el-form-item>
+                <el-button type="primary" icon="search" @click="onSubmit">查询</el-button>
+                <el-button icon="refresh" @click="onReset">重置</el-button>
+              </el-form-item>
+            </el-form>
+          </div>
+
           <div class="gva-table-box">
             <div class="gva-btn-list">
               <el-button type="primary" icon="plus" @click="openDialog">新增</el-button>
-<!--              <el-button type="primary" style="width: 110px;" >查找工单</el-button>-->
-<!--              <el-button type="primary" style="width: 110px;" >工单状态设置</el-button>-->
-<!--              <el-button type="primary" style="width: 110px;" >工单状态更正</el-button>-->
-<!--              <el-button type="primary" style="width: 110px;" >引用实际参数</el-button>-->
-<!--              <el-button type="primary" style="width: 110px;" >排程参数维护</el-button>-->
-<!--              <el-button type="primary" icon="plus" style="width: 110px;" >排程参数复制</el-button>-->
-<!--              <el-button type="primary" icon="plus" style="width: 110px;" >编辑生产计划</el-button>-->
-<!--              <el-button type="primary" icon="plus" style="width: 110px;" >工单打印</el-button>-->
-<!--              <el-button type="primary" icon="plus" style="width: 110px;" >工序产量核查</el-button>-->
-<!--              <el-button type="primary" icon="plus" style="width: 110px;" >流程单查询</el-button>-->
-<!--              <el-button type="primary" icon="plus" style="width: 110px;" >工单筛选</el-button>-->
             </div>
-			
-            <el-table ref="multipleTable" style="width: 100%" border tooltip-effect="dark" :data="tableData" row-key="ID" @selection-change="handleSelectionChange">
-              <el-table-column type="selection" width="55" />
-              <el-table-column align="left" label="工单编号" prop="employeenumber" width="120" />
-              <el-table-column align="left" label="销售订单号" prop="employeename" width="120" />
-              <el-table-column align="left" label="印件名称" prop="gender" width="120" />
-              <el-table-column align="left" label="印件工序及名称" prop="EmploymentDate" width="130" />
-              <el-table-column align="left" label="工序产量" prop="Confirmation" width="120" />
-              <el-table-column align="left" label="已完成产量" prop="department" width="120" />
-              <el-table-column align="left" label="产品名称" prop="Professional" width="120" />
-              <el-table-column align="left" label="订单数量" prop="IDCard" width="120" />
-              <el-table-column align="left" label="订量单位" prop="birthday" width="120" />
-              <el-table-column align="left" label="交货日期" prop="properties" width="120" />
-              <el-table-column align="left" label="产品代号" prop="category" width="120" />
-              <el-table-column align="left" label="工序名称" prop="bctype" width="120" />
-              <el-table-column align="left" label="机组" prop="Salary" width="120" />
-              <el-table-column align="left" label="设备编号" prop="accounting" width="120" />
-              <el-table-column align="left" label="车间名称" prop="MESbe" width="120" />
-              <el-table-column align="left" label="UNIWID" prop="MESbe" width="120" />
-              <el-table-column align="left" label="印件号" prop="MESbe" width="120" />
-              <el-table-column align="left" label="工序号" prop="MESbe" width="120" />
-              <el-table-column align="left" label="操作" min-width="120" fixed='right'>
+
+            <!-- 表格部分 -->
+            <el-table ref="multipleTable"
+                      style="width: 100%;height: 400px;"
+                      :data="tableData" border tooltip-effect="dark"
+                      row-key="ID"
+                      @selection-change="handleSelectionChange"
+                      :show-summary="true"
+            >
+              <!-- 动态绑定 el-table-column 列 -->
+              <el-table-column
+                  v-for="column in dynamicColumns"
+                  :key="column.prop"
+                  :label="column.label"
+                  :prop="column.prop"
+                  :width="column.width"
+                  :align="column.align"
+              >
+                <!-- 可以根据需要添加模板内容 -->
+              </el-table-column>
+
+              <!-- 合计行 -->
+              <el-table-column
+                  label="合计"
+                  align="center"
+                  :formatter="formatTotal"
+              ></el-table-column>
+
+              <!-- 操作列 -->
+              <el-table-column align="left" label="操作" min-width="100" fixed="right">
                 <template #default="scope">
-                 <!-- <el-button type="primary" link class="table-button" @click="getDetails(scope.row)">
-					  <el-icon style="margin-right: 5px"><InfoFilled /></el-icon>
-					  查看详情
-				  </el-button> -->
                   <el-button type="primary" link icon="edit" class="table-button" @click="updateCompanyFunc(scope.row)">变更</el-button>
-                  <!-- <el-button type="primary" link icon="delete" @click="deleteRow(scope.row)">删除</el-button> -->
                 </template>
               </el-table-column>
-
             </el-table>
-			
-            <div class="gva-pagination">
-              <el-pagination layout="total, sizes, prev, pager, next, jumper" :current-page="page" :page-size="pageSize" :page-sizes="[5,10, 30, 50, 100]" :total="total" @current-change="handleCurrentChange" @size-change="handleSizeChange"/>
-            </div>	
           </div>
-		  
-          <!-- 弹窗 -->
-          <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="type==='create'?'添加产品资料':'修改产品资料'" destroy-on-close>
-          			<el-row>
-          			  <!-- 左侧表单 -->
-          			  <el-col :span="8">
-          			    <el-scrollbar height="500px">
-          			      <el-form :model="formData" label-position="right" ref="elFormRef" :rules="rule" label-width="100px">
-          			        <el-form-item label="客户料号:" prop="address">
-          			          <el-input v-model="formData.address" :clearable="true" placeholder="" style="width: 180px;" />
-          			        </el-form-item>
-          			        <el-form-item label="产品编号:" prop="gender">
-          			          <el-input v-model="formData.gender" :clearable="true" placeholder="" style="width: 180px;" />
-          			        </el-form-item>
-          			        <el-form-item label="产品名称:" prop="idCard">
-          			          <el-input v-model="formData.idCard" :clearable="true" placeholder="" style="width: 180px;" />
-          			        </el-form-item>
-          			        <el-form-item label="版本号:" prop="department">
-          			          <el-input v-model="formData.department" :clearable="true" placeholder="" style="width: 180px;" />
-          			        </el-form-item>
-          			        <el-form-item label="成品规格:" prop="joinDate">
-          			          <el-input v-model="formData.joinDate" :clearable="true" placeholder="" style="width: 180px;" />
-          			        </el-form-item>
-          					<el-form-item label="单位:" prop="joinDate">
-          					  <el-input v-model="formData.joinDate" :clearable="true" placeholder="" style="width: 180px;" />
-          					</el-form-item>
-          					<el-form-item label="产品分类:" prop="joinDate">
-          					  <el-input v-model="formData.joinDate" :clearable="true" placeholder="" style="width: 180px;" />
-          					</el-form-item>
-          			      </el-form>
-          			    </el-scrollbar>
-          			  </el-col>
-          			
-          			  <!-- 中间表单 -->
-          			  <el-col :span="8">
-          			    <el-scrollbar height="500px">
-          			      <el-form :model="formData" label-position="right" ref="elFormRef" :rules="rule" label-width="100px">
-          			        <el-form-item label="最近接单日期:" prop="name">
-          			          <el-input v-model="formData.name" :clearable="true" placeholder=":" style="width: 180px;" />
-          			        </el-form-item>
-          			        <el-form-item label="最近引用日期:" prop="birthDate">
-          			          <el-input v-model="formData.birthDate" :clearable="true" placeholder="" style="width: 180px;" />
-          			        </el-form-item>
-          			        <el-form-item label="印件数:" prop="position">
-          			          <el-input v-model="formData.position" :clearable="true" placeholder="" style="width: 180px;" />
-          			        </el-form-item>
-          			        <el-form-item label="工艺:" prop="departmentId">
-          			          <el-input v-model="formData.departmentId" :clearable="true" placeholder="" style="width: 180px;" />
-          			        </el-form-item>
-          					<el-form-item label="当前状态:" prop="departmentId">
-          					  <el-input v-model="formData.departmentId" :clearable="true" placeholder="" style="width: 180px;" />
-          					</el-form-item>
-          					<el-form-item label="最后修改:" prop="departmentId">
-          					  <el-input v-model="formData.departmentId" :clearable="true" placeholder=":" style="width: 180px;" />
-          					</el-form-item>
-          					<el-form-item label="建档时间:" prop="departmentId">
-          					  <el-input v-model="formData.departmentId" :clearable="true" placeholder="" style="width: 180px;" />
-          					</el-form-item>
-          					<el-form-item label="更新时间:" prop="departmentId">
-          					  <el-input v-model="formData.departmentId" :clearable="true" placeholder="" style="width: 180px;" />
-          					</el-form-item>
-          			      </el-form>
-          			    </el-scrollbar>
-          			  </el-col>
-          				
-          			  </el-row>
-          
-            <template #footer>
-              <div class="dialog-footer">
-                <el-button @click="closeDialog">取 消</el-button>
-                <el-button type="primary" @click="enterDialog">确 定</el-button>
-              </div>
-            </template>
-          </el-dialog>
-		  
-		   <!-- 详情展示弹窗 -->
-          <el-dialog v-model="detailShow" style="width: 800px" lock-scroll :before-close="closeDetailShow" title="员工基本资料管理" destroy-on-close>
-			<el-scrollbar height="550px">
-			  <el-descriptions column="2" border>
-			    <!-- 左侧部分 -->
-			    <el-descriptions-item label="客户料号" :min-width="labelMinWidth">
-			      {{ formData.employeeId }}
-			    </el-descriptions-item>
-			    <el-descriptions-item label="产品编号" :min-width="labelMinWidth">
-			      {{ formData.gender }}
-			    </el-descriptions-item>
-			    <el-descriptions-item label="产品名称" :min-width="labelMinWidth">
-			      {{ formData.idCard }}
-			    </el-descriptions-item>
-			    <el-descriptions-item label="版本号" :min-width="labelMinWidth">
-			      {{ formData.sectionName }}
-			    </el-descriptions-item>
-			    <el-descriptions-item label="成品规格" :min-width="labelMinWidth">
-			      {{ formData.employeeId }}
-			    </el-descriptions-item>
-			    <el-descriptions-item label="单位" :min-width="labelMinWidth">
-			      {{ formData.gender }}
-			    </el-descriptions-item>
-			    <el-descriptions-item label="产品分类" :min-width="labelMinWidth">
-			      {{ formData.idCard }}
-			    </el-descriptions-item>
-			
-			    <!-- 右侧部分 -->
-			    <el-descriptions-item label="最近接单日期" :min-width="labelMinWidth">
-			      {{ formData.name }}
-			    </el-descriptions-item>
-			    <el-descriptions-item label="最近引用日期" :min-width="labelMinWidth">
-			      {{ formData.birthdate }}
-			    </el-descriptions-item>
-			    <el-descriptions-item label="印件数" :min-width="labelMinWidth">
-			      {{ formData.position }}
-			    </el-descriptions-item>
-			    <el-descriptions-item label="工艺" :min-width="labelMinWidth">
-			      {{ formData.departmentId }}
-			    </el-descriptions-item>
-			    <el-descriptions-item label="当前状态" :min-width="labelMinWidth">
-			      {{ formData.name }}
-			    </el-descriptions-item>
-			    <el-descriptions-item label="最后修改" :min-width="labelMinWidth">
-			      {{ formData.birthdate }}
-			    </el-descriptions-item>
-			    <el-descriptions-item label="建档时间" :min-width="labelMinWidth">
-			      {{ formData.position }}
-			    </el-descriptions-item>
-			    <el-descriptions-item label="更新时间" :min-width="labelMinWidth">
-			      {{ formData.departmentId }}
-			    </el-descriptions-item>
-			  </el-descriptions>
-			</el-scrollbar>
-			
-          </el-dialog>
+
         </el-main>
       </el-container>
     </el-container>
   </div>
 </template>
 
-<script setup>
-// 全量引入格式化工具 请按需保留
-import {createCompany, deleteCompany, deleteCompanyByIds, updateCompany, findCompany, getCompanyList} from '@/api/company'
-import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDownloadFile } from '@/utils/format'
-import { ElMessage, ElMessageBox } from 'element-plus'
-import { ref, reactive } from 'vue'
-import {DataList, getProduct, workbench} from "@/api/yunyin/yunying";
-defineOptions({name: 'Company'})
-
-// =========== 左侧树侧形结构 ===========
-const treeData = ref([]);
-const workbenchdata = async () => {
-  try {
-    const data = await workbench();
-    const rawData = data.data;
-    const dataArray =Object.keys(rawData).map(key => ({
-      label: key,
-      children: Object.keys(rawData[key]).map(subKey => ({
-        label: subKey,
-        children: rawData[key][subKey].map(item => ({
-          label: item
-        }))
-      }))
-    }));
-    treeData.value = dataArray;
-    // console.log(dataArray);
-  } catch (error) {
-    console.error(error);
-  }
-};
-workbenchdata();
-
-
-//点击左侧树形获取列表
-const tableData = reactive([])
-const handleNodeClick = async (node) => {
-  // //通过 custom_code 客户编号 获取列表数据
-  // const custom_code = node;
-  console.log(node)
-  // try {
-  //   const WorkListdata = await getProduct({ custom_code:custom_code, limit: pageSize.value, page: page.value });
-  //   tableData.splice(0, tableData.length, ...WorkListdata.data.data);//表格
-  //   total.value = tableData.length;//共多少条
-  // } catch (error) {
-  //   console.error(error);
-  // }
-};
-
-
-
-
-
-// 自动化生成的字典(可能为空)以及字段
-const formData = ref({
-        address: '',
-        image: '',
-        name: '',
-        })
-
-
-// 验证规则
-const rule = reactive({
-})
-
-const searchRule = reactive({
-  createdAt: [
-    { validator: (rule, value, callback) => {
-      if (searchInfo.value.startCreatedAt && !searchInfo.value.endCreatedAt) {
-        callback(new Error('请填写结束日期'))
-      } else if (!searchInfo.value.startCreatedAt && searchInfo.value.endCreatedAt) {
-        callback(new Error('请填写开始日期'))
-      } else if (searchInfo.value.startCreatedAt && searchInfo.value.endCreatedAt && (searchInfo.value.startCreatedAt.getTime() === searchInfo.value.endCreatedAt.getTime() || searchInfo.value.startCreatedAt.getTime() > searchInfo.value.endCreatedAt.getTime())) {
-        callback(new Error('开始日期应当早于结束日期'))
-      } else {
-        callback()
+<script>
+import {ref, computed, onMounted, reactive} from 'vue';
+import { workbench, getProduct, Project } from "@/api/yunyin/yunying";
+export default {
+  setup() {
+    const totalRow = reactive({
+      '产品名称': 0,
+    });
+
+    const calculateTotal = () => {
+      totalRow.产品名称 = 0;
+
+      tableData.value.forEach((item) => {
+        totalRow.产品名称 += item.产品名称数量 || 0;
+      });
+    };
+
+    const formatTotal = ({ row, column, rowIndex, columnIndex }) => {
+      if (columnIndex === dynamicColumns.value.length - 1 && column.property === '产品名称数量') {
+        return `产品名称:${totalRow.产品名称}个`;
       }
-    }, trigger: 'change' }
-  ],
-})
-
-const elFormRef = ref()
-const elSearchFormRef = ref()
-
-// =========== 表格控制部分 ===========
-const page = ref(1)
-const total = ref(0)
-const pageSize = ref(10)
-const searchInfo = ref({})
-
-// 重置
-const onReset = () => {
-  searchInfo.value = {}
-  getTableData()
-}
-
-// 搜索
-const onSubmit = () => {
-  elSearchFormRef.value?.validate(async(valid) => {
-    if (!valid) return
-    page.value = 1
-    pageSize.value = 10
-    getTableData()
-  })
-}
-
-// 分页
-const handleSizeChange = (val) => {
-  pageSize.value = val
-  getTableData()
-}
-
-// 修改页面容量
-const handleCurrentChange = (val) => {
-  page.value = val
-  getTableData()
-}
-
-// 查询
-const getTableData = async() => {
-  const table = await getCompanyList({ page: page.value, pageSize: pageSize.value, ...searchInfo.value })
-  if (table.code === 0) {
-    tableData.value = table.data.list
-    total.value = table.data.total
-    page.value = table.data.page
-    pageSize.value = table.data.pageSize
-  }
-}
-
-getTableData()
-
-// ============== 表格控制部分结束 ===============
-
-// 获取需要的字典 可能为空 按需保留
-const setOptions = async () =>{
-}
-
-// 获取需要的字典 可能为空 按需保留
-setOptions()
-
-
-// 多选数据
-const multipleSelection = ref([])
-// 多选
-const handleSelectionChange = (val) => {
-    multipleSelection.value = val
-}
-
-// 删除行
-const deleteRow = (row) => {
-    ElMessageBox.confirm('确定要删除吗?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-    }).then(() => {
-            deleteCompanyFunc(row)
-        })
-    }
-
-
-// 批量删除控制标记
-const deleteVisible = ref(false)
-
-// 多选删除
-const onDelete = async() => {
-      const ids = []
-      if (multipleSelection.value.length === 0) {
-        ElMessage({
-          type: 'warning',
-          message: '请选择要删除的数据'
-        })
-        return
+      return '';
+    };
+
+    const sctreeData = ref([
+      {
+        label: '设备定额及分配参数设置',
+        children:[
+          { label: '1.计划中工单', number: 1 },
+          { label: '2.排程中工单', number: 2 },
+          { label: '3.制程中工单', number: 3 },
+          { label: '4.已完工工单', number: 4 }
+        ],
       }
-      multipleSelection.value &&
-        multipleSelection.value.map(item => {
-          ids.push(item.ID)
-        })
-      const res = await deleteCompanyByIds({ ids })
-      if (res.code === 0) {
-        ElMessage({
-          type: 'success',
-          message: '删除成功'
-        })
-        if (tableData.value.length === ids.length && page.value > 1) {
-          page.value--
-        }
-        deleteVisible.value = false
-        getTableData()
+    ]);
+    const treeData = ref([]); // 添加 treeData 的定义
+    const tableData = ref([]);
+    const currentNumber = ref(0);
+    const dynamicColumns = computed(() => {
+      switch (currentNumber.value) {
+        case 1:
+          return [
+            { label: '生产分类', prop: '生产分类', width: 120, align: 'left' },
+            { label: '工单编号', prop: '工单编号', width: 120, align: 'left' },
+            { label: '产品代号', prop: '产品代号', width: 120, align: 'left' },
+            { label: '产品名称', prop: '产品名称', width: 200, align: 'left' },
+            { label: '接单日期', prop: '接单日期', width: 160, align: 'left' },
+            { label: '交货日期', prop: '交货日期', width: 160, align: 'left' },
+            { label: '订单数量', prop: '订单数量', width: 120, align: 'left' },
+            { label: '计量单位', prop: '计量单位', width: 120, align: 'left' },
+            { label: '客户名称', prop: '客户名称', width: 200, align: 'left' },
+            { label: '客户编号', prop: '客户编号', width: 120, align: 'left' },
+            { label: '备注', prop: '备注', width: 120, align: 'left' },
+            { label: '客户料号', prop: '客户料号', width: 120, align: 'left' },
+            { label: '创建用户', prop: '创建用户', width: 160, align: 'left' },
+            { label: '创建时间', prop: '创建时间', width: 160, align: 'left' },
+            { label: '修改时间', prop: '修改时间', width: 160, align: 'left' },
+            { label: 'UNIQID', prop: 'UNIQID', width: 120, align: 'left' },
+            { label: '投料率', prop: '投料率', width: 120, align: 'left' },
+            { label: '销售订单号', prop: '销售订单号', width: 120, align: 'left' },
+          ];
+        case 2:
+          return [
+            { label: '工单编号', prop: '工单编号', width: 120, align: 'left' },
+          ];
+        case 3:
+          return [
+            { label: '工单编号', prop: '工单编号', width: 120, align: 'left' },
+          ];
+        case 4:
+          return [
+            { label: '工单编号', prop: '工单编号', width: 120, align: 'left' },
+          ];
+        default:
+          return [];
       }
-    }
-
-// 行为控制标记(弹窗内部需要增还是改)
-const type = ref('')
-
-// 更新行
-const updateCompanyFunc = async(row) => {
-    // const res = await findCompany({ ID: row.ID })
-    // type.value = 'update'
-    // if (res.code === 0) {
-    //     formData.value = res.data.recompany
-    //     dialogFormVisible.value = true
-    // }
-	dialogFormVisible.value = true
-}
-
-
-// 删除行
-const deleteCompanyFunc = async (row) => {
-    const res = await deleteCompany({ ID: row.ID })
-    if (res.code === 0) {
-        ElMessage({
-                type: 'success',
-                message: '删除成功'
-            })
-            if (tableData.value.length === 1 && page.value > 1) {
-            page.value--
-        }
-        getTableData()
-    }
-}
-
-// 弹窗控制标记
-const dialogFormVisible = ref(false)
-
-
-// 查看详情控制标记
-const detailShow = ref(false)
-
-
-// 打开详情弹窗
-const openDetailShow = () => {
-  detailShow.value = true
-}
-
-
-// 打开详情
-const getDetails = async (row) => {
-  // 打开弹窗
-  const res = await findCompany({ ID: row.ID })
-  if (res.code === 0) {
-    formData.value = res.data.recompany
-    openDetailShow()
-  }
-}
-
-
-// 关闭详情弹窗
-const closeDetailShow = () => {
-  detailShow.value = false
-  formData.value = {
-          address: '',
-          image: '',
-          name: '',
-          }
-}
-
-
-// 打开弹窗
-const openDialog = () => {
-    type.value = 'create'
-    dialogFormVisible.value = true
-}
-
-// 关闭弹窗
-const closeDialog = () => {
-    dialogFormVisible.value = false
-    formData.value = {
-        address: '',
-        image: '',
-        name: '',
-        }
-}
-// 弹窗确定
-const enterDialog = async () => {
-     elFormRef.value?.validate( async (valid) => {
-             if (!valid) return
-              let res
-              switch (type.value) {
-                case 'create':
-                  res = await createCompany(formData.value)
-                  break
-                case 'update':
-                  res = await updateCompany(formData.value)
-                  break
-                default:
-                  res = await createCompany(formData.value)
-                  break
-              }
-              if (res.code === 0) {
-                ElMessage({
-                  type: 'success',
-                  message: '创建/更改成功'
-                })
-                closeDialog()
-                getTableData()
-              }
-      })
-}
-
-</script>
-
-<style>
-.JKWTree-container {
-  display: flex;
-}
-
-.JKWTree-tree {
-  width: 300px;
-  background-color: #fff;
-  padding: 10px;
-  margin-right: 20px;
-}
-
-.JKWTree-tree h3 {
-  font-size: 15px;
-  font-weight: 700;
-  margin: 10px 0;
-}
-
-.JKWTree-content {
-  flex: 1;
-}
-</style>
+    });
+    const schandleNodeClick = async (node) => {
+      currentNumber.value = node.number;
+      switch (node.number) {
+        case 1:
+          const Projectdata = await Project();
+          tableData.value = Projectdata.data;
+          break;
+        case 2:
+          break;
+        case 3:
+          break;
+        case 4:
+          break;
+        default:
+          break;
+      }
+    };
+    const handleSelectionChange = () => {
+      // 处理表格选中变化的逻辑
+    };
+
+    const updateCompanyFunc = (row) => {
+      // 处理表格行的编辑操作逻辑
+    };
+
+    const workbenchdata = async () => {
+      try {
+        const data = await workbench();
+        const rawData = data.data;
+        const dataArray = Object.keys(rawData).map((key) => ({
+          label: key,
+          children: Object.keys(rawData[key]).map((subKey) => ({
+            label: subKey,
+            children: rawData[key][subKey].map((item) => ({
+              label: item,
+            })),
+          })),
+        }));
+        treeData.value = dataArray;
+      } catch (error) {
+        console.error(error);
+      }
+    };
+
+    // 获取左侧树形结构数据
+    onMounted(() => {
+      workbenchdata();
+    });
+
+    // 处理左侧树形结构节点点击事件
+    const handleNodeClick = async (node) => {
+      const custom_code = node.label; // 假设你想使用节点的 label 作为 custom_code
+      console.log(custom_code);
+    };
+
+    return {
+      sctreeData,
+      treeData,
+      totalRow,
+      formatTotal,
+      tableData,
+      dynamicColumns,
+      schandleNodeClick,
+      handleSelectionChange,
+      updateCompanyFunc,
+      handleNodeClick,
+    };
+  },
+};
+</script>

File diff suppressed because it is too large
+ 358 - 501
src/view/yunyin/shengchanguanli/gongdanziliao.vue


Some files were not shown because too many files changed in this diff