|
|
@@ -1,933 +1,752 @@
|
|
|
<template>
|
|
|
- <div>
|
|
|
- <!-- 左侧树形结构 -->
|
|
|
- <el-container>
|
|
|
- <!-- <el-aside width="250px">
|
|
|
- <div class="JKWTree-tree-rgz">
|
|
|
- <h3>包装工序产量维护</h3>
|
|
|
- <el-tree :data="treeData" :props="defaultProps" highlight-current="true"
|
|
|
- @node-click="handleNodeClick"></el-tree>
|
|
|
- </div>
|
|
|
- </el-aside> -->
|
|
|
+ <div>
|
|
|
+ <layout>
|
|
|
+ <layout-content >
|
|
|
+ <!-- <el-main> -->
|
|
|
+ <div class="gva-table-box">
|
|
|
+ <h1 id="title" style="margin: 0%;margin-bottom: 10px;">总检报工</h1>
|
|
|
+ <el-row :gutter="10" style="align-items: center; margin-bottom: 20px;">
|
|
|
+ <!-- 子订单编号输入框 -->
|
|
|
+ <el-col :span="4" style="padding: 0px;margin: 0px;">
|
|
|
+ <el-input v-model="add_searchInfo" placeholder="请扫描子订单编号"@keyup.enter="add_onSubmit" id="searchInput" style="width: 100%; height: 50px;"/>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <!-- 查询按钮 -->
|
|
|
+ <el-col :span="1.5" style="padding: 0px;margin: 0px;">
|
|
|
+ <el-button type="primary" icon="search" @click="add_onSubmit"style="height: 50px;width: 80px;">查询</el-button>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="1.5" style="padding: 0px;margin: 0px;">
|
|
|
+ <el-text style="font-size: 30px;">机台号</el-text>
|
|
|
+ </el-col>
|
|
|
+ <!-- 机台号输入框 -->
|
|
|
+ <el-col :span="2"><el-input v-model="add_formData['机台号']" readonly style="width: 100%; height: 40px;"/></el-col>
|
|
|
+
|
|
|
+ <el-col :span="1.5" style="padding: 0px;margin: 0px;">
|
|
|
+ <el-text style="font-size: 30px;">工序</el-text>
|
|
|
+ </el-col>
|
|
|
+ <!-- 工序输入框 -->
|
|
|
+ <el-col :span="2"><el-input v-model="add_formData['工序']" readonly style="width: 100%; height: 40px;" /></el-col>
|
|
|
+
|
|
|
+ <el-col :span="1.5" style="padding: 0px;margin: 0px;">
|
|
|
+ <el-text style="font-size: 30px;">组别</el-text>
|
|
|
+ </el-col>
|
|
|
+ <!-- 组别输入框 -->
|
|
|
+ <el-col :span="2"><el-input v-model="add_formData['组别']" readonly style="width: 100%; height: 40px;" /></el-col>
|
|
|
+
|
|
|
+ <el-col :span="1.5" style="padding: 0px;margin: 0px;">
|
|
|
+ <el-text style="font-size: 30px;">人员</el-text>
|
|
|
+ </el-col>
|
|
|
+ <!-- 人员输入框 -->
|
|
|
+ <el-col :span="2"><el-input v-model="add_formData['人员']" readonly style="width: 100%; height: 40px;"/></el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-row :gutter="10" style="align-items: center; margin-bottom: 20px;">
|
|
|
+ <el-col :span="1.5" style="padding: 0px;margin: 0px;">
|
|
|
+ <el-text style="font-size: 30px;">尺码</el-text>
|
|
|
+ </el-col>
|
|
|
+ <!-- 尺码输入框 -->
|
|
|
+ <el-col :span="2"><el-input v-model="add_formData['尺码']" readonly style="width: 100%; height: 40px;"/></el-col>
|
|
|
+
|
|
|
+ <el-col :span="1.5" style="padding: 0px;margin: 0px;">
|
|
|
+ <el-text style="font-size: 30px;">总数量</el-text>
|
|
|
+ </el-col>
|
|
|
+ <!-- 总数量输入框 -->
|
|
|
+ <el-col :span="2"><el-input v-model="add_formData['总数量']" readonly style="width: 100%; height: 40px;"/></el-col>
|
|
|
+
|
|
|
+ <el-col :span="1.5" style="padding: 0px;margin: 0px;">
|
|
|
+ <el-text style="font-size: 30px;">剩余数量</el-text>
|
|
|
+ </el-col>
|
|
|
+ <!--剩余数量输入框 -->
|
|
|
+ <el-col :span="2"><el-input v-model="add_formData['剩余数量']" readonly style="width: 100%; height: 40px;"/></el-col>
|
|
|
+
|
|
|
+ <el-col :span="1.5" style="padding: 0px;margin: 0px;">
|
|
|
+ <el-text style="font-size: 30px;">上报数量</el-text>
|
|
|
+ </el-col>
|
|
|
+ <!--上报数量输入框 -->
|
|
|
+ <el-col :span="2"><el-input v-model="add_formData['上报数量']" readonly style="width: 100%; height: 40px;"/></el-col>
|
|
|
+
|
|
|
+
|
|
|
+ <!-- 是否尾包文本 -->
|
|
|
+ <el-col :span="2.5">
|
|
|
+ <el-text style="font-size: 30px;">是否尾包</el-text>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <!-- 是否尾包按钮 -->
|
|
|
+ <el-col :span="1">
|
|
|
+ <el-button
|
|
|
+ :class="{'info-button': activeButtonValue === '1', 'default-button': activeButtonValue !== '1'}"
|
|
|
+ style="margin-top:-6px; margin-right:15px; height: 50px; width: 60px;
|
|
|
+ display: flex; justify-content: center; align-items: center; cursor: not-allowed; border: 1px solid #ccc;
|
|
|
+ border-radius: 4px; color: #000000; font-size: 24px;"
|
|
|
+ :style="{ backgroundColor: activeButtonValue === '1' ? '#ff0000' : '#808080' }"
|
|
|
+ >是</el-button>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="1">
|
|
|
+ <el-button
|
|
|
+ :class="{'info-button': activeButtonValue === '0', 'default-button': activeButtonValue !== '0'}"
|
|
|
+ style="margin-top:-6px; height: 50px; width: 60px; margin-left: 10px;
|
|
|
+ display: flex; justify-content: center; align-items: center; cursor: not-allowed; border: 1px solid #ccc;
|
|
|
+ border-radius: 4px; color: #000000; font-size: 24px;"
|
|
|
+ :style="{ backgroundColor: activeButtonValue === '0' ? '#ff0000' : '#808080' }"
|
|
|
+ >否</el-button>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <layout-content >
|
|
|
+ <el-main>
|
|
|
+ <el-row :gutter="24" style="margin-bottom: 15px;margin-left: 8px;">
|
|
|
+ <!-- 表格数据 -->
|
|
|
+ <el-tabs v-model="activeName">
|
|
|
+ <el-tab-pane label="报工历史记录" @click="showTable('报工历史记录')" name="first">
|
|
|
+ <el-table ref="multipleTableRef" style="width: 100%;height: 53vh"
|
|
|
+ :row-style="{ height: '50px' }" :header-cell-style="{ padding: '5px', fontSize: '20px' }"
|
|
|
+ :cell-style="{ padding: '10px', fontSize: '20px' }" :header-row-style="{ height: '20px' }"
|
|
|
+ :data="add_tableData" border row-key="ID" size="small"
|
|
|
+ highlight-current-row="true" tooltip-effect="dark"
|
|
|
+ @row-dblclick="add_updateCompanyFunc" @row-click="add_tableRowClick" @row-contextmenu="handleRightClick"
|
|
|
+ :show-overflow-tooltip="true" @selection-change="add_xpSelectionChange">
|
|
|
+ <!-- <el-table-column type="selection" width="70" /> -->
|
|
|
+ <el-table-column sortable align="left" label="流水号" prop="serial" width="100"/>
|
|
|
+ <el-table-column sortable align="left" label="报工时间" prop="sys_rq" width="160"/>
|
|
|
+ <el-table-column sortable align="left" label="订单编号" prop="订单编号" width="130"/>
|
|
|
+ <el-table-column sortable align="left" label="订单子编号" prop="子订单编号" width="140"/>
|
|
|
+ <!-- <el-table-column sortable align="left" label="款式" prop="款式" width="140"/> -->
|
|
|
+ <el-table-column sortable align="left" label="色系名称" prop="颜色" width="130"/>
|
|
|
+ <el-table-column sortable align="left" label="尺码" prop="尺码" width="110"/>
|
|
|
+ <el-table-column sortable align="left" label="数量" prop="数量" width="110"/>
|
|
|
+ <el-table-column sortable align="left" label="上报数量" prop="上报数量" width="110"/>
|
|
|
+ <el-table-column sortable align="left" label="是否尾包" prop="尾包" width="130"/>
|
|
|
+ <el-table-column sortable align="left" label="组别" prop="组别" width="130"/>
|
|
|
+ </el-table>
|
|
|
+ </el-tab-pane>
|
|
|
+
|
|
|
+ <el-tab-pane label="技术附件" @click="showTable('技术附件')" name="fourth">
|
|
|
+ <el-table ref="multipleTable"
|
|
|
+ :row-style="{ height: '20px' }"
|
|
|
+ :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
|
|
|
+ :header-cell-style="{ padding: '0px' }"
|
|
|
+ :show-overflow-tooltip="true"
|
|
|
+ :cell-class-name="planUsageCellClass"
|
|
|
+ highlight-current-row="true"
|
|
|
+ @row-dblclick="ExcelShow"
|
|
|
+ style="width: 100%;height: 36vh" 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="120"/>
|
|
|
+ <el-table-column align="left" label="文件类型" prop="附件类型" width="120"/>
|
|
|
+ <el-table-column align="left" label="关联产品" prop="关联编号" width="120"/>
|
|
|
+ <el-table-column align="left" label="建档用户" prop="sys_id" width="120"/>
|
|
|
+ <el-table-column align="left" label="建档时间" prop="sys_rq" width="160"/>
|
|
|
+ <el-table-column align="left" label="更新时间" prop="mod_rq" width="120"/>
|
|
|
+ </el-table>
|
|
|
+ </el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
+ </el-row>
|
|
|
+ </el-main>
|
|
|
+ </layout-content>
|
|
|
+ <div class="dialog-footer" style="text-align: left;margin-right: 60px;">
|
|
|
+ <el-button type="primary" @click="add_Dialog" id="add_Dialog" :disabled="add_Dialogonclick === false" style="width: 110px;height: 60px;font-size: 20px;margin-left: 20px;">确认</el-button>
|
|
|
+ <el-button type="primary" @click="gd_yulan" style="width: 100px;height: 60px;font-size: 20px;">工单预览</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- </el-main> -->
|
|
|
+ </layout-content>
|
|
|
+ </layout>
|
|
|
+ <!-- 技术附件预览弹窗 -->
|
|
|
+ <el-dialog v-model="luckyexcelVisible" :before-close="luckyexcelCloseDialog" width="100%" top="0vh">
|
|
|
+ <div id="luckyexcel" style="width: 100%;height: 100vh;"></div>
|
|
|
+ </el-dialog>
|
|
|
|
|
|
- <layout-sider
|
|
|
- :resize-directions="['right']"
|
|
|
- :width="180"
|
|
|
- style="margin-right: 10px;"
|
|
|
- >
|
|
|
- <div
|
|
|
- class="JKWTree-tree-rgz"
|
|
|
- style="height: 70vh;"
|
|
|
- >
|
|
|
- <h3>员工日工资查询</h3>
|
|
|
- <el-tree
|
|
|
- :data="treeData"
|
|
|
- highlight-current
|
|
|
- @node-click="handleNodeClick"
|
|
|
- />
|
|
|
- </div>
|
|
|
- </layout-sider>
|
|
|
-
|
|
|
- <el-container>
|
|
|
- <el-main>
|
|
|
- <!-- 按钮区域 -->
|
|
|
- <div class="gva-table-box">
|
|
|
- <div class="gva-btn-list">
|
|
|
- <el-row :span="6">
|
|
|
- <el-input v-model="searchInfo" placeholder="输入员工编号或姓名缩写" @keyup.enter.native="onSearch" />
|
|
|
- </el-row>
|
|
|
- <el-button type="primary" :icon="Search" class="bt" @click="onSearch">搜索</el-button>
|
|
|
- <!-- <el-button type="primary" :icon="Refresh">重置</el-button> -->
|
|
|
- <!-- <el-button type="primary" :icon="Search" class="bt" @click="onposition">定位</el-button> -->
|
|
|
- <!-- <el-button type="primary" :icon="Search">查改</el-button> -->
|
|
|
- <el-button type="primary" class="bt" @click="handlePrint">员工计件明细</el-button>
|
|
|
- <div style="margin-left: auto;">
|
|
|
- <el-button type="primary" :icon="Download" class="bt" @click="exportExcel">导出到Excel(汇总)</el-button>
|
|
|
- <el-button type="primary" :icon="Download" class="bt" @click="exportExcel2">导出到Excel(明细)</el-button>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <!-- 数据展示 -->
|
|
|
- <el-table ref="multipleTable" style="width: 100%;height: 40vh;" tooltip-effect="dark" :data="tableData" row-key="ID"
|
|
|
- highlight-current-row="true" border @selection-change="handleSelectionChange" :show-overflow-tooltip="true"
|
|
|
- :row-style="{ height: '20px' }"
|
|
|
- :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
|
|
|
- :header-cell-style="{ padding: '0px' }"
|
|
|
- @row-click="ontable" @row-dblclick="doubleClick">
|
|
|
- <el-table-column type="selection" width="40" />
|
|
|
- <el-table-column
|
|
|
- v-for="column in tableCols1"
|
|
|
- :key="column.prop"
|
|
|
- :prop="column.prop"
|
|
|
- :label="column.label"
|
|
|
- :width="column.width"
|
|
|
- show-overflow-tooltip="true"
|
|
|
- sortable
|
|
|
- />
|
|
|
- </el-table>
|
|
|
- <!-- 分页 -->
|
|
|
- <!-- <div class="gva-pagination">
|
|
|
- <el-pagination layout="total, sizes, prev, pager, next, jumper" :current-page="page" :page-size="limit"
|
|
|
- :page-sizes="[10, 30, 50, 100]" :total="total" @current-change="handleCurrentChange"
|
|
|
- @size-change="handleSizeChange" />
|
|
|
- </div> -->
|
|
|
- </div>
|
|
|
-
|
|
|
-
|
|
|
- <div class="gva-table-box">
|
|
|
- <!-- 数据展示 -->
|
|
|
- <el-table ref="multipleTable2" class="lower-table" style="width: 100%;height: 40vh;" tooltip-effect="dark" :data="tableData2" row-key="ID"
|
|
|
- highlight-current-row="true" border
|
|
|
- :row-style="{ height: '20px' }"
|
|
|
- :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
|
|
|
- :header-cell-style="{ padding: '0px' }"
|
|
|
- @selection-change="handleSelectionChange"
|
|
|
- :show-overflow-tooltip="true"
|
|
|
- @row-dblclick="doubleClick">
|
|
|
- <el-table-column type="selection" width="40" />
|
|
|
- <el-table-column
|
|
|
- v-for="column in tableCols2"
|
|
|
- :key="column.prop"
|
|
|
- :prop="column.prop"
|
|
|
- :label="column.label"
|
|
|
- :width="column.width"
|
|
|
- :fixed="column.fixed"
|
|
|
- show-overflow-tooltip="true"
|
|
|
- sortable
|
|
|
- />
|
|
|
- </el-table>
|
|
|
- <!-- 分页 -->
|
|
|
- <!-- <div class="gva-pagination">
|
|
|
- <el-pagination layout="total, sizes, prev, pager, next, jumper" :current-page="page" :page-size="limit"
|
|
|
- :page-sizes="[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 width="1200px">
|
|
|
- <!-- <el-scrollbar height="500px"> -->
|
|
|
- <el-form :model="formData" label-position="left" ref="elFormRef" :rules="rule">
|
|
|
-
|
|
|
- <el-row :gutter="20">
|
|
|
-
|
|
|
- <el-col :span="6">
|
|
|
- <el-form-item label="日期" prop="name">
|
|
|
- <el-row :gutter="20">
|
|
|
- <el-col :span="12">
|
|
|
- <el-input v-model="formData.code" :clearable="true" placeholder="ZT01733" />
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
-
|
|
|
- <!-- 标题栏 -->
|
|
|
- <el-row :gutter="10">
|
|
|
- <el-col :span="3">
|
|
|
- <span>工单编号</span>
|
|
|
- </el-col>
|
|
|
- <el-col :span="3">
|
|
|
- <span>印件工序</span>
|
|
|
- </el-col>
|
|
|
- <el-col :span="3">
|
|
|
- <span>工序名称</span>
|
|
|
- </el-col>
|
|
|
- <el-col :span="9">
|
|
|
- <span>印件名称</span>
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <span>包装产量</span>
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <span>每箱数量</span>
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <span>零头</span>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
-
|
|
|
- <!-- 员工1 -->
|
|
|
- <el-row :gutter="5" style="margin-top: 10px;">
|
|
|
- <el-col :span="3">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="ZI00401" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="3">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="瞿春生" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="3">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="11.0" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="9">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="打包废纸" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="是" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="是" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="是" />
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
-
|
|
|
- <!-- 员工2 -->
|
|
|
- <el-row :gutter="5" style="margin-top: 10px;">
|
|
|
- <el-col :span="3">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="ZI00401" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="3">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="瞿春生" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="3">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="11.0" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="9">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="打包废纸" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="是" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="是" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="是" />
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
-
|
|
|
- <!-- 员工3 -->
|
|
|
- <el-row :gutter="5" style="margin-top: 10px;">
|
|
|
- <el-col :span="3">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="ZI00401" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="3">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="瞿春生" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="3">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="11.0" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="9">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="打包废纸" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="是" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="是" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="是" />
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
-
|
|
|
- <!-- 员工4 -->
|
|
|
- <el-row :gutter="5" style="margin-top: 10px;">
|
|
|
- <el-col :span="3">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="ZI00401" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="3">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="瞿春生" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="3">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="11.0" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="9">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="打包废纸" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="是" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="是" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="是" />
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
-
|
|
|
- <!-- 员工5 -->
|
|
|
- <el-row :gutter="5" style="margin-top: 10px;">
|
|
|
- <el-col :span="3">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="ZI00401" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="3">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="瞿春生" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="3">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="11.0" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="9">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="打包废纸" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="是" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="是" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="是" />
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
-
|
|
|
- <!-- 员工6 -->
|
|
|
- <el-row :gutter="5" style="margin-top: 10px;">
|
|
|
- <el-col :span="3">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="ZI00401" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="3">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="瞿春生" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="3">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="11.0" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="9">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="打包废纸" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="是" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="是" />
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <el-input v-model="formData.image" :clearable="true" placeholder="是" />
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
-
|
|
|
- </el-form>
|
|
|
- <!-- </el-scrollbar> -->
|
|
|
- <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="YgbhVisible" title="选择"
|
|
|
- destroy-on-close width="200px" @keydown="selectYgbh($event)" >
|
|
|
- <el-table tooltip-effect="dark" :data="YgbhselectData" row-key="ID"
|
|
|
- highlight-current-row="true" border style="width:100%"
|
|
|
- :row-style="{ height: '30px' }"
|
|
|
- @row-dblclick="YgbhSelectClick"
|
|
|
- ref="tableYgbh"
|
|
|
- >
|
|
|
- <el-table-column prop="ygxm" label="" width="160" />
|
|
|
- </el-table>
|
|
|
- </el-dialog>
|
|
|
-
|
|
|
- <el-dialog v-model="positioningVisibleshow" :before-close="closepositioningVisible" :title="type==='create'?'添加':'修改'" destroy-on-close>
|
|
|
- <el-card>
|
|
|
- <el-form-item label="员工编号" prop="name">
|
|
|
- <el-row :gutter="20">
|
|
|
- <el-col :span="12">
|
|
|
- <el-input v-model="positionvalue" :clearable="true" placeholder="ZT01733" />
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </el-form-item>
|
|
|
- </el-card>
|
|
|
- <el-button type="primary" @click="enterpositioning">确 定</el-button>
|
|
|
- </el-dialog>
|
|
|
-
|
|
|
- </el-main>
|
|
|
- </el-container>
|
|
|
- </el-container>
|
|
|
-
|
|
|
-
|
|
|
- <!-- 员工计件明细 -->
|
|
|
- <el-dialog
|
|
|
- v-model="dialogYgjjmx"
|
|
|
- title="员工计件明细"
|
|
|
- destroy-on-close
|
|
|
- >
|
|
|
- <Ygjjmx :ygbh="currentRow?.['bh']" />
|
|
|
- </el-dialog>
|
|
|
-
|
|
|
- </div>
|
|
|
-</template>
|
|
|
-
|
|
|
+ <PrintPage ref="printPageRef" />
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+<script>
|
|
|
+export default {
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ currentTable: '', // 当前展示的表格
|
|
|
+ activeName: 'first',
|
|
|
+ };
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ handleKeyDown(event, prevId, currentId, nextId) {
|
|
|
+ const currentElement = document.getElementById(currentId);
|
|
|
+ const isEmpty = currentElement.value === '';
|
|
|
+ const atStart = currentElement.selectionStart === 0;
|
|
|
+ const atEnd = currentElement.selectionStart === currentElement.value.length;
|
|
|
+ switch (event.keyCode) {
|
|
|
+ case 13: // Enter
|
|
|
+ case 40: // 向下箭头
|
|
|
+ if (nextId) {
|
|
|
+ document.getElementById(nextId).focus();
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 38: // 向上箭头
|
|
|
+ if (prevId) {
|
|
|
+ document.getElementById(prevId).focus();
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 8: // 删除键
|
|
|
+ if (prevId && (isEmpty || atStart)) {
|
|
|
+ document.getElementById(prevId).focus();
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 37: // 向左箭头
|
|
|
+ if (prevId && atStart) {
|
|
|
+ document.getElementById(prevId).focus();
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 39: // 向右箭头
|
|
|
+ if (nextId && atEnd) {
|
|
|
+ document.getElementById(nextId).focus();
|
|
|
+
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
<script setup>
|
|
|
-import {
|
|
|
- getList,
|
|
|
- getTab,
|
|
|
- dailygetTab,
|
|
|
- dailygetList,
|
|
|
- dailygetAllList,
|
|
|
- dailygetDetail,
|
|
|
- dailysearch,
|
|
|
- getYg
|
|
|
-} from '@/api/jixiaoguanli/jitairibaobiao'
|
|
|
-
|
|
|
// 全量引入格式化工具 请按需保留
|
|
|
-import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDownloadFile } from '@/utils/format'
|
|
|
-import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
-import { Search, Refresh, Download } from '@element-plus/icons-vue'
|
|
|
-import { ref, reactive, onMounted, nextTick, onBeforeMount } from 'vue'
|
|
|
-import Ygjjmx from './printYgjjmx.vue'
|
|
|
-import * as XLSX from "xlsx";
|
|
|
-import { useUserStore } from '@/pinia/modules/user'
|
|
|
-const userStore = useUserStore()
|
|
|
-const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
|
|
|
-defineOptions({
|
|
|
- name: '06-packingDocuments'
|
|
|
-})
|
|
|
-const tableCols1 = [
|
|
|
- { label: '员工编号', prop: 'bh', width: '105' },
|
|
|
- { label: '员工姓名', prop: '员工姓名', width: '105' },
|
|
|
- { label: '日期', prop: 'sczl_rq', width: '120' },
|
|
|
- { label: '计件工资', prop: '计件工资', width: '105' },
|
|
|
- { label: '加班工资', prop: '加班工资', width: '105' },
|
|
|
- { label: '计时时数', prop: '计时时数', width: '105' },
|
|
|
- { label: '计时工资', prop: '计时工资', width: '135' },
|
|
|
- { label: '日工资合计', prop: '日工资合计', width: '135' },
|
|
|
-]
|
|
|
-const tableCols2 = [
|
|
|
- { label: '日期', prop: 'sczl_rq', width: '105', fixed: true },
|
|
|
- { label: '工单编号', prop: 'sczl_gdbh', width: '105', fixed: true },
|
|
|
- { label: '产品名称', prop: 'Gd_cpmc', width: '120' },
|
|
|
- { label: '印件及工序', prop: 'sczl_type', width: '120' },
|
|
|
- { label: '机台编号', prop: 'sczl_jtbh', width: '105' },
|
|
|
- { label: '班组车头产量', prop: '班组车头产量', width: '135' },
|
|
|
- { label: '班组换算产量', prop: '班组换算产量', width: '135' },
|
|
|
- { label: '工序难度系数', prop: '工序难度系数', width: '135' },
|
|
|
- { label: '个人计件工资', prop: '个人计件工资', width: '135' },
|
|
|
- { label: '个人加班工资', prop: '个人加班工资', width: '135' },
|
|
|
- { label: '装版工时', prop: '装版工时', width: '120' },
|
|
|
- { label: '保养工时', prop: '保养工时', width: '105' },
|
|
|
- { label: '打样工时', prop: '打样工时', width: '105' },
|
|
|
- { label: '异常停机工时', prop: '异常停机工时', width: '145' },
|
|
|
- { label: '车头产量占用机时', prop: '车头产量占用机时', width: '175' },
|
|
|
- { label: '日定额', prop: '日定额', width: '135' },
|
|
|
- { label: '达标定额', prop: '达标定额', width: '105' },
|
|
|
- { label: '千件工价', prop: '千件工价', width: '105' },
|
|
|
- { label: '补产标准', prop: '补产标准', width: '120' },
|
|
|
- { label: '员工编号', prop: 'bh', width: '105' },
|
|
|
- { label: '姓名', prop: 'xm', width: '105' },
|
|
|
- { label: '比例', prop: 'Rate', width: '105' },
|
|
|
-]
|
|
|
-// 侧边栏数据请求
|
|
|
-const treeData = reactive([]);
|
|
|
-const multipleTable=ref()
|
|
|
-const getTabdata = async () => {
|
|
|
- //接口调用函数
|
|
|
- const response = await dailygetTab();
|
|
|
-
|
|
|
- const transformedData = response.data.map(item => ({
|
|
|
- label: `${item.label}`,
|
|
|
- children: item.children.map(sysItem => ({
|
|
|
- label: `${sysItem.label}`,
|
|
|
- params: {
|
|
|
- date: item.label,
|
|
|
- sys_id: sysItem.label,
|
|
|
- total:'',
|
|
|
- },
|
|
|
- })),
|
|
|
- }));
|
|
|
- treeData.splice(0, treeData.length, ...transformedData);
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-getTabdata();
|
|
|
-
|
|
|
-// 自动化生成的字典(可能为空)以及字段
|
|
|
-const formData = ref({
|
|
|
- id: '',
|
|
|
- name: '',
|
|
|
- date: '',
|
|
|
- group: '',
|
|
|
- packingOutput: '',
|
|
|
- reworkOutput: '',
|
|
|
- pieceOutput: '',
|
|
|
- order: '',
|
|
|
- user: '',
|
|
|
- createTime: '',
|
|
|
- updateTime: '',
|
|
|
- uniqid: '',
|
|
|
-})
|
|
|
-
|
|
|
-// 验证规则
|
|
|
-const rule = reactive({
|
|
|
-})
|
|
|
-
|
|
|
-const elFormRef = ref()
|
|
|
-const elSearchFormRef = ref()
|
|
|
-
|
|
|
-// =========== 表格控制部分 ===========
|
|
|
-const tableData = reactive([])
|
|
|
-const tableData2 = reactive([])
|
|
|
-const detailData = reactive([])
|
|
|
-const total = ref(0)
|
|
|
-const page = ref(1)
|
|
|
-const limit = ref(10)
|
|
|
-const searchInfo = ref('')
|
|
|
-const params = {
|
|
|
- date: '',
|
|
|
- sys_id: '',
|
|
|
- page: page.value.toString(),
|
|
|
- limit: limit.value.toString(),
|
|
|
-}
|
|
|
-
|
|
|
-// 分页设置
|
|
|
-const handleSizeChange = (val) => {
|
|
|
- limit.value = val;
|
|
|
- params.limit = val.toString();
|
|
|
- getTableData();
|
|
|
-}
|
|
|
-
|
|
|
-// 页面跳转
|
|
|
-const handleCurrentChange = (val) => {
|
|
|
- page.value = val
|
|
|
- params.page = val.toString();
|
|
|
- getTableData()
|
|
|
-}
|
|
|
-
|
|
|
-// 查询
|
|
|
-const getTableData = async () => {
|
|
|
-
|
|
|
-
|
|
|
- const response = await dailygetList({
|
|
|
- date: params.date, department: params.sys_id,});
|
|
|
- // console.log(response)
|
|
|
- if (response.code === 0) {
|
|
|
- const originalData = response.data;
|
|
|
- const summaryData = generateSummaryData(originalData);
|
|
|
- // 将合计数据插入到原始数据中
|
|
|
- const combinedData = [];
|
|
|
- originalData.forEach((item, index) => {
|
|
|
- combinedData.push(item);
|
|
|
- const nextItem = originalData[index + 1];
|
|
|
- if (nextItem && nextItem['员工姓名'] !== item['员工姓名']) {
|
|
|
- // 如果下一个员工姓名与当前不同,插入合计数据
|
|
|
- const currentSummary = summaryData.shift();
|
|
|
- combinedData.push(currentSummary);
|
|
|
-
|
|
|
- }
|
|
|
- });
|
|
|
- //插入最后一个员工的合计
|
|
|
- combinedData.push(summaryData[0]);
|
|
|
- // 更新表格数据
|
|
|
- tableData.splice(0, tableData.length, ...combinedData);
|
|
|
+import $script from 'scriptjs'
|
|
|
+import $ from 'jquery';
|
|
|
+import LuckyExcel from 'luckyexcel';
|
|
|
+import { Layout, LayoutSider, LayoutContent } from '@arco-design/web-vue';
|
|
|
+import {hiprint} from "vue-plugin-hiprint";
|
|
|
+import {ref, reactive,nextTick,watch, setBlockTracking } from 'vue'
|
|
|
+import {getSpotList,search,getTab,OrderAttachments} from '@/api/mes/job'
|
|
|
+import {getMachineMac} from '@/api/jixiaoguanli/jitairibaobiao'
|
|
|
+import {getMac} from '@/api/jixiaoguanli/baogong'
|
|
|
+import PrintPage from '../yunyin/shengchanguanli/components/print.vue';
|
|
|
+import {ElMessage} from "element-plus";
|
|
|
+import { get } from 'scriptjs';
|
|
|
+defineOptions({name: 'Company'})
|
|
|
+const printPageRef = ref()
|
|
|
+// =========== 全局获取当前日期 ===========
|
|
|
+// currentDate 年月日 时分秒
|
|
|
+// currentDates 年月日
|
|
|
+const today = new Date();
|
|
|
+const year = today.getFullYear();
|
|
|
+const month = String(today.getMonth() + 1).padStart(2, '0'); // 月份从 0 开始,需要补零
|
|
|
+const day = String(today.getDate()).padStart(2, '0');
|
|
|
+const hours = String(today.getHours()).padStart(2, '0');
|
|
|
+const minutes = String(today.getMinutes()).padStart(2, '0');
|
|
|
+const seconds = String(today.getSeconds()).padStart(2, '0');
|
|
|
+const currentDate = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
|
|
+const currentDates = `${year}-${month}-${day}`;
|
|
|
+
|
|
|
+//全局获取code,接口接收code
|
|
|
+const _code = '总检'
|
|
|
+//全局接口接受的物理地址
|
|
|
+const Machine = ref('')
|
|
|
+//全局获取UniqId
|
|
|
+const UniqId = ref('')
|
|
|
+//全局获取工序
|
|
|
+const _gx = '6'
|
|
|
+//全局获取工序名称
|
|
|
+const _gxmc = '总检'
|
|
|
+
|
|
|
+
|
|
|
+//物理地址获取机台编号
|
|
|
+const getMachineMacdata = async () => {
|
|
|
+ console.log(_code,"机台获取物理地址",Machine.value)
|
|
|
+ try {
|
|
|
+ const data = await getMachineMac({sys_sbID:Machine.value});
|
|
|
+ add_formData['机台号'] = data.data['机台号']
|
|
|
+ add_formData['工序'] = data.data['生产工序']
|
|
|
+ add_formData['组别'] = data.data['组别']
|
|
|
+ add_formData['人员'] = data.data['组长']
|
|
|
+ setTimeout(() => {
|
|
|
+ const inputElement = document.getElementById('searchInput');
|
|
|
+ if (inputElement) {
|
|
|
+ inputElement.focus();
|
|
|
+ }
|
|
|
+ }, 100); // 延迟100毫秒
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error)
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-const generateSummaryData = (data) => {
|
|
|
- const summaryData = [];
|
|
|
- let currentName = null;
|
|
|
- let currentSummary = null;
|
|
|
-
|
|
|
- data.forEach((item) => {
|
|
|
- const name = item['员工姓名'].trim(); // 获取员工姓名并去除空格
|
|
|
- if (name !== currentName) {
|
|
|
- // 如果员工姓名发生改变,说明需要插入合计数据
|
|
|
- if (currentSummary) {
|
|
|
- // 将上一个员工的合计数据插入到数组中
|
|
|
- summaryData.push(currentSummary);
|
|
|
+//自动获取物理地址
|
|
|
+const GetAddr = () => {
|
|
|
+ var xmlhttp = null;
|
|
|
+ var res;
|
|
|
+ if (window.XMLHttpRequest) {
|
|
|
+ xmlhttp = new XMLHttpRequest();
|
|
|
+ } else if (window.ActiveXObject) {
|
|
|
+ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
|
|
|
+ }
|
|
|
+ // 2. 设置回调函数
|
|
|
+ xmlhttp.onreadystatechange = function() {
|
|
|
+ if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
|
|
|
+ res = eval('('+xmlhttp.response+')');
|
|
|
+ let result = ''
|
|
|
+ for (let i = 0; i < res.macAddress.length; i++) {
|
|
|
+ if (i % 2 === 0 && i !== 0) {
|
|
|
+ result += '-' // 根据实际需求修改分隔符
|
|
|
+ }
|
|
|
+ result += res.macAddress[i]
|
|
|
}
|
|
|
- // 创建新的合计数据
|
|
|
- currentSummary = {
|
|
|
- '员工姓名': name,
|
|
|
- '日期': 0,
|
|
|
- '计件工资': 0,
|
|
|
- '加班工资': 0,
|
|
|
- '计时时数': 0,
|
|
|
- '计时工资': 0,
|
|
|
- '日工资合计': 0
|
|
|
- };
|
|
|
- currentName = name;
|
|
|
+ Machine.value = result
|
|
|
+ getMachineMacdata(Machine.value)
|
|
|
}
|
|
|
-
|
|
|
- // 更新合计数据
|
|
|
- currentSummary['日期']++;
|
|
|
- currentSummary['计件工资'] += parseFloat(item['计件工资']);
|
|
|
- currentSummary['加班工资'] += parseFloat(item['加班工资']);
|
|
|
- currentSummary['计时时数'] += parseFloat(item['计时时数']);
|
|
|
- currentSummary['计时工资'] += parseFloat(item['计时工资']);
|
|
|
- currentSummary['日工资合计'] += parseFloat(item['日工资合计']);
|
|
|
- currentSummary['员工姓名']='合计('+currentSummary['日期']+'天)';
|
|
|
- });
|
|
|
-
|
|
|
- // 将最后一个员工的合计数据插入到数组中
|
|
|
- if (currentSummary) {
|
|
|
- summaryData.push(currentSummary);
|
|
|
- }
|
|
|
-
|
|
|
- // 将日期填充到表格中
|
|
|
- summaryData.forEach((summary) => {
|
|
|
- summary['计件工资'] = summary['计件工资'].toFixed(2); // 保留两位小数
|
|
|
- summary['加班工资'] = summary['加班工资'].toFixed(2);
|
|
|
- summary['计时时数'] = summary['计时时数'].toFixed(2);
|
|
|
- summary['计时工资'] = summary['计时工资'].toFixed(2);
|
|
|
- summary['日工资合计'] = summary['日工资合计'].toFixed(2);
|
|
|
- });
|
|
|
-
|
|
|
- return summaryData;
|
|
|
-};
|
|
|
-const handleNodeClick = (node, check) => {
|
|
|
- //存放当前节点的nodeId
|
|
|
- if (node.params) {
|
|
|
- params.date = node.params.date;
|
|
|
- params.sys_id = node.params.sys_id;
|
|
|
- total.value = node.params.total;
|
|
|
- getTableData();
|
|
|
}
|
|
|
+ // 3. 打开一个连接
|
|
|
+ xmlhttp.open("get", "http://127.0.0.1:8090/init")
|
|
|
+ // 5. 发送
|
|
|
+ xmlhttp.send();
|
|
|
}
|
|
|
-
|
|
|
-// 定位
|
|
|
-function onposition() {
|
|
|
- positioningVisibleshow.value=true
|
|
|
-}
|
|
|
-const enterpositioning = async () => {
|
|
|
- let parts = params.date.split('-')
|
|
|
-
|
|
|
- // # 截取第一个"-"之前的内容并赋值给新变量1
|
|
|
- let new_variable1 = parts[0]
|
|
|
-
|
|
|
- // # 截取第一个"-"之后到第二个"-"之前的内容并赋值给新变量2
|
|
|
- let new_variable2 = parts[1]
|
|
|
- Getlocate(new_variable1+new_variable2)
|
|
|
- positioningVisibleshow.value=false
|
|
|
-}
|
|
|
-let positionvalue=ref()
|
|
|
-const Getlocate = async () => {
|
|
|
- const response = await dailysearch({
|
|
|
- date: params.date,
|
|
|
- search:searchInfo.value
|
|
|
- })
|
|
|
- if (response.code === 0) {
|
|
|
- if(response.data.length == 0){
|
|
|
- const originalData = []
|
|
|
- tableData.splice(0, tableData.length, ...originalData)
|
|
|
- return
|
|
|
- }
|
|
|
- const originalData = response.data;
|
|
|
+// getMachineMacdata();
|
|
|
+GetAddr()
|
|
|
+//搜索
|
|
|
+const add_searchInfo = ref('')
|
|
|
+//表格
|
|
|
+const add_tableData = reactive([]);
|
|
|
+//尾包选中值
|
|
|
+const activeButtonValue = ref('')
|
|
|
+//代表扫描两次自动保存
|
|
|
+const searcs = ref('')
|
|
|
+const _order = ref('')
|
|
|
+//技术附件
|
|
|
+const jstableData = reactive([])
|
|
|
+
|
|
|
+//查询按钮
|
|
|
+const add_onSubmit = async ()=>{
|
|
|
+ if(add_searchInfo.value === '' || add_searchInfo.value === undefined){
|
|
|
+ const WorkListdata = [];
|
|
|
+ add_tableData.splice(0,add_tableData.length,...WorkListdata);
|
|
|
+ ElMessage({type: 'warning',message: '请扫描小票二维码' })
|
|
|
+ }else{
|
|
|
+ //订单编号 获取 技术附件数据Excel
|
|
|
+ const searchValue = add_searchInfo.value.split('-')[0];
|
|
|
+ const jsOrderAttachments = await OrderAttachments({order:searchValue,desc:'技术附件'})
|
|
|
+ console.log(jsOrderAttachments)
|
|
|
+ jstableData.splice(0,jsOrderAttachments.data.length,...jsOrderAttachments.data);
|
|
|
|
|
|
- // // 将合计数据插入到原始数据中
|
|
|
- // const combinedData = [];
|
|
|
- // originalData.forEach((item, index) => {
|
|
|
- // combinedData.push(item);
|
|
|
- // const nextItem = originalData[index + 1];
|
|
|
- // if (nextItem && nextItem['员工姓名'] !== item['员工姓名']) {
|
|
|
- // // 如果下一个员工姓名与当前不同,插入合计数据
|
|
|
- // const currentSummary = summaryData.shift();
|
|
|
- // combinedData.push(currentSummary);
|
|
|
-
|
|
|
- // }
|
|
|
- // });
|
|
|
- // //插入最后一个员工的合计
|
|
|
- // combinedData.push(summaryData[0]);
|
|
|
- // // 更新表格数据
|
|
|
- // tableData.splice(0, tableData.length, ...combinedData);
|
|
|
- const summaryData = generateSummaryData(originalData);
|
|
|
- originalData.push(summaryData[0]);
|
|
|
- tableData.splice(0, tableData.length, ...originalData)
|
|
|
+ add_formData['尺码'] = ''
|
|
|
+ add_formData['总数量'] = ''
|
|
|
+ add_formData['剩余数量'] = ''
|
|
|
+ add_formData['上报数量'] = ''
|
|
|
+ // if(searcs.value === ''){
|
|
|
+ _order.value = add_searchInfo.value;
|
|
|
+ const sys_sbID = add_formData['机台号']
|
|
|
+ //获取下面报工历史记录
|
|
|
+ const getSpotLists = await getSpotList({order:add_searchInfo.value,code:_code,sys_sbID:sys_sbID});
|
|
|
+ activeButtonValue.value = getSpotLists.data.result.wb
|
|
|
+ UniqId.value = getSpotLists.data.result.UniqId
|
|
|
+ add_formData['尺码'] = getSpotLists.data.result.cm
|
|
|
+ add_formData['总数量'] = getSpotLists.data.result.sl
|
|
|
+ add_formData['剩余数量'] = getSpotLists.data.result.ci_num
|
|
|
+ add_tableData.splice(0,add_tableData.length,...getSpotLists.data.records);
|
|
|
+ // searcs.value = 1;
|
|
|
+ add_searchInfo.value = ''
|
|
|
+ setTimeout(() => {
|
|
|
+ const inputElement = document.getElementById('sbsl');
|
|
|
+ if (add_formData['剩余数量']) {
|
|
|
+ inputElement.focus();
|
|
|
+ }
|
|
|
+ }, 100); // 延迟100毫秒
|
|
|
+
|
|
|
+ // }else{
|
|
|
+ // add_Dialog();
|
|
|
+ // }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// 搜索
|
|
|
-function onSearch() {
|
|
|
- if(!params.date){
|
|
|
- ElMessage({
|
|
|
- type: 'warning',
|
|
|
- message: '请先选择车间'
|
|
|
+//技术资料excel展示
|
|
|
+const ExcelShow = (row) =>{
|
|
|
+ console.log("技术资料excel展示")
|
|
|
+ console.log(row)
|
|
|
+ if(!row.附件内容) return
|
|
|
+ $.getScript('/luckysheet/plugins/js/plugin.js', () => {
|
|
|
+ $script('/luckysheet/luckysheet.umd.js', () => {
|
|
|
+ function dataURLtoBlob(dataUrl) {
|
|
|
+ const byteString = atob(dataUrl.split(',')[1]);
|
|
|
+ const ab = new ArrayBuffer(byteString.length);
|
|
|
+ const ia = new Uint8Array(ab);
|
|
|
+
|
|
|
+ for (let i = 0; i < byteString.length; i++) {
|
|
|
+ ia[i] = byteString.charCodeAt(i);
|
|
|
+ }
|
|
|
+
|
|
|
+ return new Blob([ab], { type: 'application/octet-stream' });
|
|
|
+ }
|
|
|
+
|
|
|
+ const blob = dataURLtoBlob(row.附件内容);
|
|
|
+ luckyexcelVisible.value = true
|
|
|
+ LuckyExcel.transformExcelToLucky(blob, function(exportJson, luckysheetfile){
|
|
|
+ if(exportJson.sheets==null || exportJson.sheets.length==0){
|
|
|
+ alert("Failed to read the content of the excel file, currently does not support xls files!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if(luckyExcel) luckyExcel.destroy();
|
|
|
+ luckysheet.create({
|
|
|
+ container: 'luckyexcel', //容器的ID
|
|
|
+ data: exportJson.sheets,
|
|
|
+ title: exportJson.info.name, // 工作簿名称
|
|
|
+ lang: "zh", // 设定表格语言 国际化设置,允许设置表格的语言,支持中文("zh")和英文("en")
|
|
|
+ showtoolbar: false, // 是否显示工具栏
|
|
|
+ showinfobar: false, // 是否显示顶部信息栏
|
|
|
+ allowEdit: false, // 是否允许前台编辑
|
|
|
+ enableAddRow: false, // 允许增加行
|
|
|
+ enableAddCol: false, // 允许增加列
|
|
|
+ userInfo: false, // 右上角的用户信息展示样式
|
|
|
+ showRowBar: false, // 是否显示行号区域
|
|
|
+ showColumnBar: false, // 是否显示列号区域
|
|
|
+ sheetFormulaBar: false, // 是否显示公式栏
|
|
|
+ enableAddBackTop: false,//返回头部按钮
|
|
|
+ });
|
|
|
+ luckyExcel = luckysheet;
|
|
|
+ })
|
|
|
})
|
|
|
- return
|
|
|
- }
|
|
|
- if(searchInfo.value){
|
|
|
- getYg({sczl_bh:searchInfo.value}).then(res=>{
|
|
|
- if (res.code === 0) {
|
|
|
- if(res.data.length === 0){
|
|
|
- const originalData = []
|
|
|
- tableData.splice(0, tableData.length, ...originalData)
|
|
|
- return
|
|
|
- }else if(res.data.length === 1){
|
|
|
- searchInfo.value = res.data[0]['员工编号']
|
|
|
- Getlocate()
|
|
|
- }else{
|
|
|
- YgbhselectData.splice(0, YgbhselectData.length, ...res.data)
|
|
|
- setYgbhCurrent(YgbhselectData[0])
|
|
|
- YgbhVisible.value=true
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- }else{
|
|
|
- getTableData();
|
|
|
- }
|
|
|
-
|
|
|
-}
|
|
|
+ })
|
|
|
+ $('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/css/pluginsCss.css'));
|
|
|
+ $('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/plugins.css'));
|
|
|
+ $('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/css/luckysheet.css'));
|
|
|
+ $('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/assets/iconfont/iconfont.css'));
|
|
|
|
|
|
-const YgbhVisible = ref(false)
|
|
|
-const YgbhselectData = reactive([])
|
|
|
-//选择
|
|
|
-const YgbhSelectClick = (row, column, event) => {
|
|
|
- searchInfo.value = row['员工编号']
|
|
|
- YgbhVisible.value = false
|
|
|
- Getlocate()
|
|
|
-}
|
|
|
-const tableYgbh=ref()
|
|
|
-const setYgbhCurrent = (row) => {
|
|
|
- setTimeout(()=>{
|
|
|
- tableYgbh.value?.setCurrentRow(row)
|
|
|
- searchInfo.value = row['员工编号']
|
|
|
- })
|
|
|
-}
|
|
|
-const YgbhIndex = ref(0);
|
|
|
-const YgbhCurrent = ref(0);
|
|
|
-const selectYgbh = (event) => {
|
|
|
- if (event.keyCode === 40) { // 向下箭头
|
|
|
- if (YgbhIndex.value < YgbhselectData.length - 1) {
|
|
|
- YgbhIndex.value++;
|
|
|
- setYgbhCurrent(YgbhselectData[YgbhIndex.value]);
|
|
|
- } else {
|
|
|
- YgbhIndex.value = 0;
|
|
|
- setYgbhCurrent(YgbhselectData[YgbhIndex.value]); // 到达最后一行时回到第一行
|
|
|
- }
|
|
|
- } else if (event.keyCode === 38) { // 向上箭头
|
|
|
- if (YgbhIndex.value > 0) {
|
|
|
- YgbhIndex.value--;
|
|
|
- setYgbhCurrent(YgbhselectData[YgbhIndex.value]);
|
|
|
- } else {
|
|
|
- YgbhIndex.value = YgbhselectData.length - 1;
|
|
|
- setYgbhCurrent(YgbhselectData[YgbhIndex.value]); // 到达第一行时回到最后一行
|
|
|
- }
|
|
|
- } else if (event.keyCode === 13) { // 回车键
|
|
|
- YgbhVisible.value = false
|
|
|
- Getlocate()
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
-// ============== 表格控制部分结束 ===============
|
|
|
+let luckyExcel = null
|
|
|
|
|
|
-// 获取需要的字典 可能为空 按需保留
|
|
|
-const setOptions = async () => {
|
|
|
-}
|
|
|
+const luckyexcelVisible = ref(false)
|
|
|
+const luckyexcelCloseDialog = () => {
|
|
|
+ luckyexcelVisible.value = false
|
|
|
+}
|
|
|
|
|
|
-// 获取需要的字典 可能为空 按需保留
|
|
|
-setOptions()
|
|
|
|
|
|
-// 多选数据
|
|
|
-const multipleSelection = ref([])
|
|
|
-// 多选
|
|
|
-const handleSelectionChange = (val) => {
|
|
|
- // multipleSelection.value = val
|
|
|
-
|
|
|
-}
|
|
|
|
|
|
-// 批量删除控制标记
|
|
|
-const deleteVisible = ref(false)
|
|
|
+const AttendanceVisible=ref(false)
|
|
|
+//清空对象的属性值
|
|
|
+const gd_clearFormData = () => {
|
|
|
+ Object.keys(add_formData).forEach(key => {
|
|
|
+ add_formData[key] = '';
|
|
|
+ });
|
|
|
+};
|
|
|
+const add_formData = reactive({
|
|
|
+ 机台号: '',
|
|
|
+ 工序: '',
|
|
|
+ 组别: '',
|
|
|
+ 人员: '',
|
|
|
+ 尺码: '',
|
|
|
+ 数量: '',
|
|
|
+ 剩余数量: '',
|
|
|
+ 上报数量:'',
|
|
|
+ 是否订单尾包: '',
|
|
|
|
|
|
-// 多选删除
|
|
|
-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 add_Dialogonclick = ref(false)
|
|
|
+function baogongslpd() {
|
|
|
+ // 将字符串转换为数字
|
|
|
+ const reportedQuantity = parseInt(add_formData['上报数量'], 10) || 0; // 使用10作为基数表示十进制,如果转换失败则返回0
|
|
|
+ const totalQuantity = parseInt(add_formData['剩余数量'], 10) || 0; // 同样处理
|
|
|
+ if (reportedQuantity > totalQuantity) {
|
|
|
+ ElMessage({ type: 'warning', message: '上报数量不能大于剩余数量' });
|
|
|
+ add_Dialogonclick.value = false;
|
|
|
+ }else if(reportedQuantity === 0){
|
|
|
+ add_Dialogonclick.value = false;
|
|
|
+ } else {
|
|
|
+ add_Dialogonclick.value = true;
|
|
|
+ }
|
|
|
}
|
|
|
+const currentSlValue=ref('')
|
|
|
+//后道确认按钮
|
|
|
+const add_Dialog = async ()=>{
|
|
|
+ if(_order.value === ''){
|
|
|
+ ElMessage({type: 'warning',message: '请重新扫描小票二维码'})
|
|
|
+ }else{
|
|
|
+ console.log(_order.value.split(',')[0])
|
|
|
+ let params ={}
|
|
|
+ params.code = _code
|
|
|
+ params.order = _order.value.split(',')[0].split('-')[0]
|
|
|
+ params.order_id = _order.value.split(',')[0]
|
|
|
+ params.gx = _gx
|
|
|
+ params.gxmc = _gxmc
|
|
|
+ params.cm = _order.value.split(',')[3]
|
|
|
+ params.sl = _order.value.split(',')[4]
|
|
|
+ params.sczl_jtbh = add_formData['机台号']
|
|
|
+ params.sczl_bh = add_formData['组别']
|
|
|
+ params.wb = _order.value.split(',')[5]
|
|
|
+ params.sys_id = add_formData['人员']
|
|
|
+ params.UniqId = UniqId.value
|
|
|
+ params.s_num = add_formData['上报数量']
|
|
|
+ params.ci_num = add_formData['剩余数量']
|
|
|
+ console.log(params)
|
|
|
+ // return false;
|
|
|
+ const cf_gettab = await search(params); // 调用search函数
|
|
|
+ if (cf_gettab.code === 0) {
|
|
|
+ // const firstPart = add_searchInfo.value.split(',')[0];
|
|
|
+ //上报后历史记录表格刷新
|
|
|
+ const lsjltable = await getTab({order_id:_order.value.split(',')[0],sczl_jtbh:add_formData['机台号']});
|
|
|
+ add_tableData.splice(0,add_tableData.length,...lsjltable.data.records);
|
|
|
+ // //上报后刷新表格数据
|
|
|
+ // const getSpotLists = await getSpotList({order:_order.value.split(',')[0],code:_code,sys_sbID:sys_sbID});
|
|
|
+ // add_tableData.splice(0,add_tableData.length,...getSpotLists.data.records);
|
|
|
+ add_searchInfo.value = '';
|
|
|
+ setTimeout(() => {
|
|
|
+ const inputElement = document.getElementById('searchInput');
|
|
|
+ if (inputElement) {
|
|
|
+ inputElement.focus();
|
|
|
+ }
|
|
|
+ }, 100); // 延迟100毫秒
|
|
|
+ // searcs.value = '';
|
|
|
+ add_formData['尺码']=''
|
|
|
+ add_formData['总数量']=''
|
|
|
+ add_formData['上报数量']=''
|
|
|
+ add_formData['剩余数量']=''
|
|
|
+ // searcs.value = 1;
|
|
|
+ add_searchInfo.value = ''
|
|
|
+ ElMessage({type: 'success', message: '报工成功'});
|
|
|
+ }
|
|
|
|
|
|
-// 行为控制标记(弹窗内部需要增还是改)
|
|
|
-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
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// 弹窗控制标记
|
|
|
-const dialogFormVisible = ref(false)
|
|
|
-const positioningVisibleshow = ref(false)
|
|
|
-// 打开弹窗
|
|
|
-const openDialog = () => {
|
|
|
- type.value = 'create'
|
|
|
- dialogFormVisible.value = true
|
|
|
-}
|
|
|
-
|
|
|
-// 关闭弹窗
|
|
|
-const closeDialog = () => {
|
|
|
- dialogFormVisible.value = false
|
|
|
- formData.value = {
|
|
|
- address: '',
|
|
|
- image: '',
|
|
|
- name: '',
|
|
|
+const gd_yulan = () => {
|
|
|
+ if(_order.value === '' || _order.value === null){
|
|
|
+ ElMessage({type: 'warning',message: '请选择具体的工单后,再操作此功能'})
|
|
|
+ return false;
|
|
|
+ }else{
|
|
|
+ const order = _order.value.split('-')[0]
|
|
|
+ printPageRef.value.open(order)
|
|
|
}
|
|
|
}
|
|
|
-// 弹窗确定
|
|
|
-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()
|
|
|
- }
|
|
|
- })
|
|
|
+//单击
|
|
|
+const add_tableRowClick = async (row) => {
|
|
|
+ const orderString = `${row['子订单编号']},${row['组别']},3,${row['尺码']},${row['数量']},${row['尾包']}`;
|
|
|
+ add_formData['尺码'] = row.尺码
|
|
|
+ add_formData['总数量'] = row.数量
|
|
|
+ add_formData['剩余数量'] = row.剩余数量
|
|
|
+ _order.value = orderString
|
|
|
+console.log(row)
|
|
|
}
|
|
|
-// 单击表格操作
|
|
|
-function ontable(row, column, event) {
|
|
|
- currentRow.value = row
|
|
|
- let parts = params.date.split('-')
|
|
|
-
|
|
|
- // # 截取第一个"-"之前的内容并赋值给新变量1
|
|
|
- let new_variable1 = parts[0]
|
|
|
- // # 截取第一个"-"之后到第二个"-"之前的内容并赋值给新变量2
|
|
|
- let new_variable2 = parts[1]
|
|
|
- if(row.bh == undefined) return
|
|
|
+//双击
|
|
|
+const add_updateCompanyFunc = async (row) => {
|
|
|
|
|
|
- dailygetAllList({date:new_variable1,code:row.bh}).then(response=>{
|
|
|
- if(response.code==0){
|
|
|
- tableData2.splice(0, tableData2.length, ...response.data);
|
|
|
- // 为匹配的行添加黄色背景
|
|
|
- nextTick(() => {
|
|
|
- let i = 0
|
|
|
- tableData2.forEach((item, index) => {
|
|
|
- const rowElement = document.querySelector(`.lower-table .el-table__row:nth-child(${index + 1})`);
|
|
|
-
|
|
|
- if (rowElement) {
|
|
|
- if (item.sczl_rq == row.sczl_rq) { // 替换yourProperty为实际的属性名
|
|
|
- if(i == 0){
|
|
|
- //第一条数据,设置这条数据到视口顶部
|
|
|
- rowElement.scrollIntoView();
|
|
|
- console.log(rowElement)
|
|
|
- }
|
|
|
- i++
|
|
|
- rowElement.style.backgroundColor = 'yellow';
|
|
|
- }else{
|
|
|
- rowElement.style.backgroundColor = '';
|
|
|
- }
|
|
|
- }
|
|
|
- })
|
|
|
- })
|
|
|
- }
|
|
|
- })
|
|
|
}
|
|
|
+//右键
|
|
|
+const handleRightClick = async (row) => {
|
|
|
|
|
|
-// 双击表格操作
|
|
|
-function doubleClick(row, column, event) {
|
|
|
- // updateCompanyFunc(row);
|
|
|
- type.value = 'update';
|
|
|
- // dialogFormVisible.value = true
|
|
|
+}
|
|
|
+//复选框
|
|
|
+const add_xpSelectionChange = async (selection) => {
|
|
|
+ console.log(selection.length)
|
|
|
+ selectedRows.value = selection;
|
|
|
+ if (selection.length === 0) {
|
|
|
+ ElMessage({type: 'warning', message: '请勾选打印的数据' });
|
|
|
+ return false;
|
|
|
+ }else if(selection.length>0){
|
|
|
+ allPrintData.value = selection.map((row) => {
|
|
|
+ let weibao = row['是否尾包'] === '是' ? 1 : 0;
|
|
|
+ const ewm = `${row['订单子编号']},01,${row['尺码']},${row['数量']},${weibao}`;
|
|
|
+ return {
|
|
|
+ emm: ewm,
|
|
|
+ zddbh: row['子订单编号'],
|
|
|
+ kh: row['款号'],
|
|
|
+ pm: row['款式'],
|
|
|
+ ys: row['颜色'],
|
|
|
+ cm: row['尺码'],
|
|
|
+ sl: row['数量'],
|
|
|
+ zb: row['组别'],
|
|
|
+ dyrq: currentDates,
|
|
|
+ wb: row['尾包']
|
|
|
+ };
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ allPrintData.value = [];
|
|
|
+ }
|
|
|
+ console.log(allPrintData.value)
|
|
|
}
|
|
|
|
|
|
-// 导出excel
|
|
|
+// =========== 删除按钮 ===========
|
|
|
+//记录复选框的值
|
|
|
+const bgSelection = ref(null)
|
|
|
+const baogong_del = () => {
|
|
|
+ if(bgSelection.value === null || bgSelection.value === ''){
|
|
|
+ ElMessage({type: 'warning',message: '请选择删除的数据' })
|
|
|
+ }else{
|
|
|
+ console.log(bgSelection.value)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 保存当前选中的行数据
|
|
|
+const table_selectrows = ref([]);
|
|
|
|
|
|
-function exportExcel() {
|
|
|
- if(tableData.length<1){
|
|
|
- ElMessage({
|
|
|
- type: 'error',
|
|
|
- message: '请确认上方表格内是否存在内容'
|
|
|
- })
|
|
|
- }else{
|
|
|
- exportExcelFile(tableData,tableCols1)
|
|
|
- }
|
|
|
-};
|
|
|
-function exportExcel2() {
|
|
|
-if(tableData2.length<1){
|
|
|
- ElMessage({
|
|
|
- type: 'error',
|
|
|
- message: '请确认上方表格内是否存在内容'
|
|
|
- })
|
|
|
- }else{
|
|
|
- exportExcelFile(tableData2,tableCols2)
|
|
|
- }
|
|
|
+// 表格复选框选中变化时触发
|
|
|
+const table_SelectionChange = (val) => {
|
|
|
+ table_selectrows.value = val; // 将选中的行数据保存到 table_selectrows
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+// =========== 分页 ===========
|
|
|
+// 分页相关的响应式变量
|
|
|
+const page = ref(1)
|
|
|
+const total = ref(0)
|
|
|
+const pageSize = ref(10)
|
|
|
+// 分页
|
|
|
+const handleCurrentChange = (val) => {
|
|
|
+page.value = val;
|
|
|
+_getStaffList();
|
|
|
};
|
|
|
-const exportExcelFile = (tableData, tableCols) => {
|
|
|
- const data = tableData.map(row => {
|
|
|
- const rowData = {};
|
|
|
- tableCols.forEach(column => {
|
|
|
- rowData[column.label] = row[column.prop];
|
|
|
- });
|
|
|
- return rowData;
|
|
|
- });
|
|
|
|
|
|
- const worksheet = XLSX.utils.json_to_sheet(data);
|
|
|
- const workbook = XLSX.utils.book_new();
|
|
|
- XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
|
|
|
- XLSX.writeFile(workbook, 'exported_table.xlsx');
|
|
|
+// 修改页面容量 点击多少条/页
|
|
|
+const handleSizeChange = (val) => {
|
|
|
+page.value = 10;//默认显示
|
|
|
+pageSize.value = val;
|
|
|
+_getStaffList();
|
|
|
};
|
|
|
-const currentRow = ref()
|
|
|
-const dialogYgjjmx = ref(false)
|
|
|
-function handlePrint() {
|
|
|
- dialogYgjjmx.value = true
|
|
|
-}
|
|
|
-
|
|
|
-// 生命周期钩子
|
|
|
-onMounted(async () => {
|
|
|
-});
|
|
|
</script>
|
|
|
+<style scoped>
|
|
|
+.form-container {
|
|
|
+display: flex;
|
|
|
+flex-wrap: wrap;
|
|
|
+}
|
|
|
|
|
|
-<style>
|
|
|
-.JKWTree-container {
|
|
|
- display: flex;
|
|
|
+.form-column {
|
|
|
+/*flex: 1;*/
|
|
|
+margin-right: 15px; /* 调整列之间的间距 */
|
|
|
+}
|
|
|
+/* 左侧输入框宽度调整 */
|
|
|
+.form-column .el-form-item .el-input {
|
|
|
+width: 150px; /* 调整左侧输入框的宽度 */
|
|
|
}
|
|
|
|
|
|
-.JKWTree-tree-rgz {
|
|
|
- width: 150px;
|
|
|
- background-color: #fff;
|
|
|
- padding: 10px;
|
|
|
- margin-right: 20px;
|
|
|
+/* 媒体查询,根据需要调整断点 */
|
|
|
+@media screen and (max-width: 768px) {
|
|
|
+.form-column {
|
|
|
+ flex: 1 0 100%; /* 在小屏幕下变成单列布局 */
|
|
|
+ margin-right: 0;
|
|
|
+}
|
|
|
+}
|
|
|
+/* 表格复选框大小调整 */
|
|
|
+:deep(.el-checkbox.el-checkbox--small .el-checkbox__inner) {
|
|
|
+ width: 30px; /* 复选框宽度 */
|
|
|
+ height: 20px; /* 复选框高度 */
|
|
|
}
|
|
|
|
|
|
-.JKWTree-tree-rgz h3 {
|
|
|
- font-size: 15px;
|
|
|
- font-weight: 700;
|
|
|
- margin: 10px 0;
|
|
|
+:deep(.el-checkbox.el-checkbox--small.is-checked .el-checkbox__inner::after) {
|
|
|
+ transform: scale(1.2) rotate(45deg); /* 调整选中后的对勾大小 */
|
|
|
+ top: 5%; /* 调整对勾位置 */
|
|
|
+ left: 40%; /* 调整对勾位置 */
|
|
|
+ width: 5px; /* 调整对勾宽度 */
|
|
|
+ height: 9px; /* 调整对勾高度 */
|
|
|
}
|
|
|
|
|
|
+/*:deep(.el-table td .cell) {*/
|
|
|
+/* line-height: 30px !important;*/
|
|
|
+/*}*/
|
|
|
+.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;
|
|
|
+flex: 1;
|
|
|
+}
|
|
|
+/* 图片上传 */
|
|
|
+.upload-box {
|
|
|
+width: 200px;
|
|
|
+height: 200px;
|
|
|
+border: 2px dashed #e2e2e2;
|
|
|
+display: flex;
|
|
|
+justify-content: center;
|
|
|
+align-items: center;
|
|
|
+position: relative;
|
|
|
+cursor: pointer;
|
|
|
+}
|
|
|
+.uploaded-image {
|
|
|
+width: 100%;
|
|
|
+height: 100%;
|
|
|
+object-fit: cover;
|
|
|
+}
|
|
|
+.upload-icon {
|
|
|
+font-size: 40px;
|
|
|
+color: #c0c4cc;
|
|
|
+}
|
|
|
+.file-input {
|
|
|
+display: none;
|
|
|
+}
|
|
|
+.el-table .warning-row {
|
|
|
+background: oldlace;
|
|
|
}
|
|
|
|
|
|
-/* 选中某行时的背景色*/
|
|
|
-.el-table__body tr.current-row>td {
|
|
|
- background: #ff80ff !important;
|
|
|
- /* 背景颜色 */
|
|
|
+/* 选中某行时的背景色 */
|
|
|
+:deep(.el-table__body tr.current-row) > td {
|
|
|
+background: #ff80ff !important;
|
|
|
+}
|
|
|
+</style>
|
|
|
+<style scoped>
|
|
|
+:deep(.el-table td .cell) {
|
|
|
+line-height: 20px !important;
|
|
|
+}
|
|
|
+:deep(.el-tabs__header){
|
|
|
+margin-bottom: 0;
|
|
|
+}
|
|
|
+.search{
|
|
|
+margin-left: 0px !important;
|
|
|
+margin-right: 10px !important;
|
|
|
}
|
|
|
-.bt {
|
|
|
- margin-left: 2px !important;
|
|
|
- padding: 3px !important;
|
|
|
- font-size: 12px;
|
|
|
+.bt{
|
|
|
+margin-left: 2px !important;
|
|
|
+padding: 3px !important;
|
|
|
+font-size: 12px;
|
|
|
}
|
|
|
-</style>
|
|
|
+.el-tabs__header{
|
|
|
+margin: 0px !important;
|
|
|
+}
|
|
|
+.gva-table-box{
|
|
|
+padding: 0px !important;
|
|
|
+margin-left: -10px !important;
|
|
|
+}
|
|
|
+.mab{
|
|
|
+margin-bottom: 5px;
|
|
|
+}
|
|
|
+/* 点击按钮改变颜色 */
|
|
|
+.active-button {
|
|
|
+ background-color: #ff0000;
|
|
|
+}
|
|
|
+.default-button {
|
|
|
+ background-color: #808080;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+/* 搜索样式 */
|
|
|
+::v-deep .el-input__wrapper #searchInput {
|
|
|
+ font-size: 16px;
|
|
|
+}
|
|
|
+::v-deep .el-input__wrapper #jitaihao {
|
|
|
+ font-size: 18px;
|
|
|
+}
|
|
|
+::v-deep .el-input__wrapper #gongxu {
|
|
|
+ font-size: 18px;
|
|
|
+}
|
|
|
+::v-deep .el-input__wrapper #zubie {
|
|
|
+ font-size: 18px;
|
|
|
+}
|
|
|
+::v-deep .el-input__wrapper #renyuan {
|
|
|
+ font-size: 18px;
|
|
|
+}
|
|
|
+::v-deep .el-input__wrapper #shuliang {
|
|
|
+ font-size: 18px;
|
|
|
+ color: red;
|
|
|
+}
|
|
|
+::v-deep .el-input__wrapper #chima {
|
|
|
+ font-size: 18px;
|
|
|
+}
|
|
|
+::v-deep .el-input__wrapper #sbsl {
|
|
|
+ font-size: 18px;
|
|
|
+ color: red;
|
|
|
+}
|
|
|
+</style>
|