chukubaogong.vue 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693
  1. <template>
  2. <div>
  3. <layout>
  4. <layout-header>
  5. <div class="">
  6. <!-- 按钮部分-->
  7. <el-form ref="elSearchFormRef" class="demo-form-inline" :rules="searchRule" @keyup.enter="onSubmit">
  8. <el-form-item>
  9. <el-input v-model="searchInfo" placeholder="搜索" clearable style="width: 200px;margin: 5px"></el-input>
  10. <el-button type="primary" icon="search" @click="onSubmit" style="margin: 5px">查询</el-button>
  11. <el-button type="primary" @click="onAttendance" style="margin: 5px">新增</el-button>
  12. <el-button type="primary" @click="baogong_del" style="margin: 5px;float: right;background-color: red">删除</el-button>
  13. </el-form-item>
  14. </el-form>
  15. </div>
  16. </layout-header>
  17. <layout>
  18. <!--左侧树侧形结构-->
  19. <layout-sider :resize-directions="['right']" :width="190" style="margin-right: 10px;">
  20. <div class="JKWTree-tree" style="height: 200px">
  21. <h3>出库报工</h3>
  22. <el-tree :data="treeData" class="treecolor" @node-click="handleNodeClick"></el-tree>
  23. </div>
  24. </layout-sider>
  25. <!-- 右侧区域 -->
  26. <layout-content >
  27. <el-main>
  28. <div class="gva-table-box">
  29. <!-- 表格数据 -->
  30. <el-table ref="multipleTable" style="width: 100%;height: 65vh" tooltip-effect="dark"
  31. :row-style="{ height: '20px' }" :header-cell-style="{ padding: '0px' }"
  32. :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
  33. :data="tableData" border row-key="ID"
  34. size="small"
  35. highlight-current-row="true" @row-dblclick="updateCompanyFunc"
  36. @row-click="tableRowClick" :show-overflow-tooltip="true"
  37. @selection-change="handleSelectionChange">
  38. <el-table-column type="selection" width="55" />
  39. <el-table-column sortable align="center" label="序号" prop="序号" width="80" />
  40. <el-table-column sortable align="left" label="订单子编号" prop="订单子编号" width="120"/>
  41. <el-table-column sortable align="center" label="订单号" prop="订单号" width="120"/>
  42. <el-table-column sortable align="left" label="生产款号" prop="生产款号" width="120" />
  43. <el-table-column sortable align="left" label="款式" prop="款式" width="110" />
  44. <el-table-column sortable align="left" label="颜色" prop="颜色" width="80" />
  45. <el-table-column sortable align="left" label="制单总数" prop="制单总数" width="100" />
  46. <el-table-column sortable align="left" label="实裁总数" prop="实裁总数" width="110" />
  47. <el-table-column sortable align="left" label="单位" prop="单位" width="80" />
  48. <el-table-column sortable align="left" label="工序" prop="工序" width="80" />
  49. <el-table-column sortable align="left" label="验片人" prop="验片人" width="90" />
  50. <el-table-column sortable align="left" label="日期" prop="日期" width="120" />
  51. </el-table>
  52. <!-- 分页 -->
  53. <div class="gva-pagination">
  54. <el-pagination layout="total" :current-page="page" :page-size="pageSize"
  55. :total="total" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
  56. <!-- <el-pagination layout="total, sizes, prev, pager, next, jumper" :current-page="page" :page-size="pageSize" :page-sizes="[10, 30, 50, 100]"-->
  57. <!-- :total="total" @current-change="handleCurrentChange" @size-change="handleSizeChange" />-->
  58. </div>
  59. </div>
  60. <!-- 弹窗 -->
  61. <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="'修改员工基本资料'" destroy-on-close>
  62. <el-form :model="formDataTest" label-position="right" ref="elFormRef" :rules="rule" label-width="100px">
  63. <div class="form-container">
  64. <!-- 左侧部分 -->
  65. <div class="form-column" style="width: 36%;">
  66. <el-form-item label="员工编号:" prop="employeeId" class="mab" >
  67. <el-input v-model="formDataTest['员工编号']" placeholder="" style="width: 190px;"
  68. id="员工编号" @keydown="handleKeyDown($event, '员工编号', '在职状态', '性别')" />
  69. </el-form-item>
  70. <el-form-item label="性别:" prop="gender" class="mab">
  71. <el-input v-model="formDataTest['性别']" placeholder="" style="width: 190px;"
  72. id="性别" @keydown="handleKeyDown($event, '性别', '员工编号', '身份证号')" />
  73. </el-form-item>
  74. <el-form-item label="身份证号:" prop="gender" class="mab">
  75. <el-input v-model="formDataTest['身份证号']" placeholder="" style="width: 190px;"
  76. id="身份证号" @keydown="handleKeyDown($event, '身份证号', '性别', '所在部门')" />
  77. </el-form-item>
  78. <el-form-item label="部门名称:" prop="gender" class="mab">
  79. <el-input v-model="formDataTest['所在部门']" placeholder="" style="width: 190px;"
  80. id="所在部门" @keydown="handleKeyDown($event, '所在部门', '身份证号', '聘用日期')" />
  81. </el-form-item>
  82. <el-form-item label="入职日期:" prop="joinDate" class="mab">
  83. <el-input v-model="formDataTest['聘用日期']" placeholder="" style="width: 190px;"
  84. id="聘用日期" @keydown="handleKeyDown($event, '聘用日期', '所在部门', '人员类别')" />
  85. </el-form-item>
  86. <el-form-item label="人员类别:" prop="joinDate" >
  87. <el-select v-model="formDataTest['人员类别']" placeholder="" style="width: 190px;" id="人员类别"
  88. @keydown="handleKeyDown($event, '人员类别', '聘用日期', '班次类型')"
  89. >
  90. <el-option label="生产" value="生产"></el-option>
  91. <el-option label="行政" value="行政"></el-option>
  92. </el-select>
  93. </el-form-item>
  94. <el-form-item label="班次类型:" prop="joinDate" class="mab">
  95. <el-input v-model="formDataTest['班次类型']" placeholder="" style="width: 190px;"
  96. id="班次类型" @keydown="handleKeyDown($event, '班次类型', '人员类别', '工资表类别')" />
  97. </el-form-item>
  98. <el-form-item label="工资表类别:" prop="joinDate" class="mab">
  99. <el-select v-model="formDataTest['工资表类别']" placeholder="" style="width: 190px;"
  100. id="工资表类别" @keydown="handleKeyDown($event, '工资表类别', '班次类型', 'U8在职')"
  101. >
  102. <el-option label="职员级计时工资表" value="职员级计时工资表"></el-option>
  103. <el-option label="另发工资" value="另发工资"></el-option>
  104. <el-option label="操作级计件工资表" value="操作级计件工资表"></el-option>
  105. <el-option label="操作级计时工资表" value="操作级计时工资表"></el-option>
  106. </el-select>
  107. </el-form-item>
  108. <el-form-item label="U8在职:" prop="joinDate" class="mab">
  109. <el-input v-model="formDataTest['U8在职']" placeholder="" style="width: 190px;"
  110. id="U8在职" @keydown="handleKeyDown($event, 'U8在职', '工资表类别', '员工姓名')" />
  111. </el-form-item>
  112. </div>
  113. <!-- 中间部分 -->
  114. <div class="form-column">
  115. <el-form-item label="员工姓名:" prop="name" class="mab" label-width="100">
  116. <el-input v-model="formDataTest['员工姓名']" placeholder="" style="width: 190px;"
  117. id="员工姓名" @keydown="handleKeyDown($event, '员工姓名', 'U8在职', '出生日期')" />
  118. </el-form-item>
  119. <el-form-item label="出生日期:" prop="birthDate" class="mab" label-width="100">
  120. <el-input v-model="formDataTest['出生日期']" placeholder="" style="width: 190px;"
  121. id="出生日期" @keydown="handleKeyDown($event, '出生日期', '员工姓名', '职称职务')" />
  122. </el-form-item>
  123. <el-form-item label="职务:" prop="position" class="mab" label-width="100">
  124. <el-input v-model="formDataTest['职称职务']" placeholder="" style="width: 190px;"
  125. id="职称职务" @keydown="handleKeyDown($event, '职称职务', '出生日期', '部门编码')" />
  126. </el-form-item>
  127. <el-form-item label="部门编号:" prop="position" class="mab" label-width="100">
  128. <el-input v-model="formDataTest['部门编码']" placeholder="" style="width: 190px;"
  129. id="部门编码" @keydown="handleKeyDown($event, '部门编码', '职称职务', '转正日期')" />
  130. </el-form-item>
  131. <el-form-item label="转正日期:" prop="departmentId" class="mab" label-width="100">
  132. <el-input v-model="formDataTest['转正日期']" placeholder="" style="width: 190px;"
  133. id="转正日期" @keydown="handleKeyDown($event, '转正日期', '部门编码', '扣减司龄')" />
  134. </el-form-item>
  135. <el-form-item label="扣减司龄:" prop="departmentId" class="mab" label-width="100">
  136. <el-input v-model="formDataTest['扣减司龄']" placeholder="" style="width: 190px;"
  137. id="扣减司龄" @keydown="handleKeyDown($event, '扣减司龄', '转正日期', '人员性质')" />
  138. </el-form-item>
  139. <el-form-item label="人员性质:" prop="departmentId" class="mab" label-width="100">
  140. <el-select v-model="formDataTest['人员性质']" placeholder="" style="width: 190px;"
  141. id="人员性质" @keydown="handleKeyDown($event, '人员性质', '扣减司龄', '薪酬核算分组')"
  142. >
  143. <el-option label="退休返聘" value="退休返聘"></el-option>
  144. <el-option label="劳动合同工" value="劳动合同工"></el-option>
  145. <el-option label="借用" value="借用"></el-option>
  146. <el-option label="劳务派遣" value="劳务派遣"></el-option>
  147. <el-option label="实习生" value="实习生"></el-option>
  148. </el-select>
  149. </el-form-item>
  150. <el-form-item label="工资核算分组:" prop="joinDate" class="mab" label-width="100" >
  151. <el-input v-model="formDataTest['薪酬核算分组']" placeholder="" style="width: 190px;"
  152. id="薪酬核算分组" @keydown="handleKeyDown($event, '薪酬核算分组', '人员性质', '在职状态')" />
  153. </el-form-item>
  154. <el-form-item label="在职状态:" prop="joinDate" class="mab" label-width="100" >
  155. <el-input v-model="formDataTest['在职状态']" placeholder="" style="width: 190px;"
  156. id="在职状态" @keydown="handleKeyDown($event, '在职状态', '薪酬核算分组', '员工编号')" />
  157. </el-form-item>
  158. </div>
  159. </div>
  160. </el-form>
  161. <!-- 添加编辑页面取消确定按钮 -->
  162. <div style="text-align: right; ">
  163. <el-button @click="closeDialog">取消</el-button>
  164. <el-button type="primary" @click="enterDialog">确定</el-button>
  165. </div>
  166. </el-dialog>
  167. <!-- 新增弹窗 -->
  168. <el-dialog v-model="AttendanceVisible" title="新增" destroy-on-close width="50%">
  169. <el-row :gutter="24" style="margin-bottom: 20px;">
  170. <el-input v-model="add_searchInfo" placeholder="扫描订单二维码获取订单信息" clearable style="width: 400px;margin: 5px"></el-input>
  171. <el-button type="primary" icon="search" @click="add_onSubmit" style="margin: 5px">查询</el-button>
  172. </el-row>
  173. <el-row :gutter="24" style="margin-bottom: 20px;">
  174. <el-table ref="multipleTable" style="width: 100%;height: 20vh" tooltip-effect="dark"
  175. :row-style="{ height: '30px' }" :header-cell-style="{ padding: '0px' }"
  176. :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
  177. :data="add_tableData" border row-key="ID"
  178. size="small" highlight-current-row="true" @row-dblclick="add_updateCompanyFunc"
  179. @row-click="add_tableRowClick" :show-overflow-tooltip="true"
  180. @selection-change="handleSelectionChange">
  181. <el-table-column sortable align="center" label="订单号" prop="订单号" width="180"/>
  182. <el-table-column sortable align="left" label="生产款号" prop="生产款号" width="305"/>
  183. <el-table-column sortable align="left" label="款式" prop="款式" width="180"/>
  184. <el-table-column sortable align="left" label="颜色" prop="颜色" width="180"/>
  185. </el-table>
  186. </el-row>
  187. <el-row :gutter="24" style="margin-bottom: 20px;">
  188. <el-form-item label="日期:" prop="deliveryDate" class="mab" label-width="80">
  189. <el-date-picker v-model="add_riqiformData['日期']" type="date" style="width: 150px;"/>
  190. </el-form-item>
  191. </el-row>
  192. <template #footer>
  193. <div class="dialog-footer">
  194. <el-button @click="add_closeDialog">取消</el-button>
  195. <el-button type="primary" @click="add_Dialog">保存</el-button>
  196. </div>
  197. </template>
  198. </el-dialog>
  199. </el-main>
  200. </layout-content>
  201. </layout>
  202. </layout>
  203. </div>
  204. </template>
  205. <script>
  206. export default {
  207. data() {
  208. return {
  209. dialogFormVisible: false,
  210. formDataTest: {
  211. imageUrl: '' // 添加一个字段来保存上传的图片路径
  212. },
  213. rule: {} // 初始化rule对象
  214. };
  215. },
  216. methods: {
  217. handleKeyDown(event, currentId, prevId, nextId) {
  218. const currentElement = document.getElementById(currentId);
  219. const isEmpty = currentElement.value === '';
  220. const atStart = currentElement.selectionStart === 0;
  221. const atEnd = currentElement.selectionStart === currentElement.value.length;
  222. switch (event.keyCode) {
  223. case 13: // Enter
  224. case 40: // 向下箭头
  225. if (nextId) {
  226. document.getElementById(nextId).focus();
  227. }
  228. break;
  229. case 38: // 向上箭头
  230. if (prevId) {
  231. document.getElementById(prevId).focus();
  232. }
  233. break;
  234. case 8: // 删除键
  235. if (prevId && (isEmpty || atStart)) {
  236. document.getElementById(prevId).focus();
  237. }
  238. break;
  239. case 37: // 向左箭头
  240. if (prevId && atStart) {
  241. document.getElementById(prevId).focus();
  242. }
  243. break;
  244. case 39: // 向右箭头
  245. if (nextId && atEnd) {
  246. document.getElementById(nextId).focus();
  247. }
  248. break;
  249. default:
  250. break;
  251. }
  252. },
  253. closeDialog() {
  254. // 关闭对话框的逻辑
  255. this.dialogFormVisible = false;
  256. },
  257. enterDialog() {
  258. // 确定按钮的逻辑
  259. // 在这里可以执行提交表单的逻辑
  260. },
  261. handleFileUpload(event) {
  262. // 处理文件上传逻辑
  263. const file = event.target.files[0];
  264. console.log(file)
  265. // 模拟上传并保存文件路径
  266. // 在实际应用中,您需要将文件上传到服务器并保存路径
  267. this.formDataTest.imageUrl = URL.createObjectURL(file);
  268. // 手动触发Vue的更新
  269. this.$forceUpdate();
  270. }
  271. }
  272. };
  273. </script>
  274. <script setup>
  275. // 全量引入格式化工具 请按需保留
  276. import { Layout, LayoutSider, LayoutContent } from '@arco-design/web-vue';
  277. import {ref, reactive} from 'vue'
  278. import {getCustom, getDepartment, getProductData,getStaffInfo, getStaffList, ygjbzledit,clockUpdate} from '@/api/yunyin/yunying'
  279. import {ElMessage} from "element-plus";
  280. defineOptions({name: 'Company'})
  281. // =========== 获取左侧树侧形结构 ===========
  282. const treeData = ref({})
  283. const DataListdata = async () => {
  284. try {
  285. const data =
  286. [{
  287. label : '出库记录',
  288. children : [
  289. {label : '2024.7.16'},
  290. {label : '2024.7.15'},
  291. {label : '2024.7.14'},
  292. {label : '2024.7.13'},
  293. {label : '2024.7.12'},
  294. {label : '2024.7.11'}
  295. ]
  296. }];
  297. treeData.value = data
  298. } catch (error) {
  299. console.error(error);
  300. }
  301. };
  302. DataListdata();
  303. //点击左侧树形 获取右侧table列表
  304. const tableData = reactive([]);
  305. const _u8 = ref(null); // U8系统的值
  306. const _mes = ref(null); // MES系统的值
  307. const handleNodeClick = async (node) => {
  308. _getStaffList(); // 执行获取员工列表的函数
  309. };
  310. //点击管理中心 显示部门的全部数据
  311. const handleNodeExpand = async (node) => {
  312. // _department_code.value = node['编号'];
  313. searchInfo.value = '';
  314. _getStaffList()
  315. }
  316. // =========== 搜索 ===========
  317. const searchInfo = ref('')
  318. const _department_code = ref(null)
  319. //点击【查询】按钮
  320. const onSubmit = () => {
  321. _department_code.value = '';
  322. if(searchInfo.value === ''){
  323. tableData.length = 0;
  324. }else{
  325. _getStaffList();
  326. }
  327. };
  328. //获取员工信息列表
  329. const _getStaffList = async ()=>{
  330. console.log(123)
  331. try {
  332. const WorkListdata = [
  333. {
  334. '序号':'1',
  335. '订单号':'XXX001',
  336. '生产款号':'2403-1622款',
  337. '款式':'连衣裙',
  338. '颜色':'红色',
  339. '工序':'仓库出库',
  340. '面料验片人':'xxx',
  341. '日期':'2024-07-16'
  342. },
  343. {
  344. '序号':'2',
  345. '订单号':'XXX002',
  346. '生产款号':'2403-1622款',
  347. '款式':'连衣裙',
  348. '颜色':'红色',
  349. '工序':'仓库出库',
  350. '面料验片人':'xxx',
  351. '日期':'2024-07-16'
  352. },
  353. {
  354. '序号':'3',
  355. '订单号':'XXX003',
  356. '生产款号':'2403-1622款',
  357. '款式':'连衣裙',
  358. '颜色':'红色',
  359. '工序':'仓库出库',
  360. '面料验片人':'xxx',
  361. '日期':'2024-07-16'
  362. },
  363. ];
  364. console.log(WorkListdata)
  365. tableData.splice(0,tableData.length,...WorkListdata);//表格数据
  366. // total.value =WorkListdata.data.total;//共多少条
  367. } catch (error) {
  368. console.error(error);
  369. }
  370. }
  371. // =========== 新增按钮 ===========
  372. const AttendanceVisible=ref(false)
  373. const add_tableData = reactive([]);
  374. // 获取当前日期
  375. const today = new Date();
  376. const year = today.getFullYear();
  377. const month = String(today.getMonth() + 1).padStart(2, '0'); // 月份从 0 开始,需要补零
  378. const day = String(today.getDate()).padStart(2, '0');
  379. const hours = String(today.getHours()).padStart(2, '0');
  380. const minutes = String(today.getMinutes()).padStart(2, '0');
  381. const seconds = String(today.getSeconds()).padStart(2, '0');
  382. const currentDate = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  383. //新增按钮
  384. const onAttendance = () => {
  385. AttendanceVisible.value=true
  386. const WorkListdata = [
  387. {
  388. '订单号':'XXX001',
  389. '生产款号':'2403-1622款',
  390. '款式':'连衣裙',
  391. '颜色':'红色'
  392. },
  393. ];
  394. add_riqiformData['日期'] = currentDate
  395. console.log(WorkListdata)
  396. add_tableData.splice(0,add_tableData.length,...WorkListdata);//表格数据
  397. };
  398. const add_riqiformData = reactive({
  399. 日期: '',
  400. });
  401. // 新增确定
  402. const add_Dialog = () => {
  403. };
  404. // 新增取消
  405. const add_closeDialog = () => {
  406. AttendanceVisible.value=true
  407. };
  408. // =========== 新增搜索 ===========
  409. const add_searchInfo = ref('')
  410. //点击【查询】按钮
  411. const add_onSubmit = async ()=>{
  412. if(add_searchInfo.value === '' || add_searchInfo.value === undefined){
  413. ElMessage({type: 'warning',message: '搜索内容不能为空' })
  414. }else{
  415. console.log(add_searchInfo.value)
  416. }
  417. };
  418. // =========== 删除按钮 ===========
  419. const bgSelection = ref(null)
  420. const baogong_del = () => {
  421. if(bgSelection.value === null || bgSelection.value === ''){
  422. ElMessage({type: 'warning',message: '请选择删除的数据' })
  423. }else{
  424. console.log(bgSelection.value)
  425. }
  426. }
  427. // 复选框
  428. const handleSelectionChange = (selection, type) => {
  429. const ids = selection.map(item => {
  430. return item.订单子编号
  431. })
  432. bgSelection.value = ids.join(',')
  433. }
  434. // =========== 修改 ===========
  435. // 双击修改
  436. const updateCompanyFunc = async (row) => {
  437. // let code = row['员工编号'];
  438. // const getStaffInfo_data = await getStaffInfo({code:code});
  439. // formDataTest.value = getStaffInfo_data.data;
  440. // dialogFormVisible.value = true;
  441. };
  442. // =========== 分页 ===========
  443. // 分页相关的响应式变量
  444. const page = ref(1)
  445. const total = ref(0)
  446. const pageSize = ref(10)
  447. // 分页
  448. const handleCurrentChange = (val) => {
  449. page.value = val;
  450. _getStaffList();
  451. };
  452. // 修改页面容量 点击多少条/页
  453. const handleSizeChange = (val) => {
  454. page.value = 10;//默认显示
  455. pageSize.value = val;
  456. _getStaffList();
  457. };
  458. // 弹窗控制标记
  459. const dialogFormVisible = ref(false)
  460. //修改
  461. const formDataTest = ref({})
  462. const Attendancevalue = ref({})
  463. //考勤建立弹窗确定
  464. const AttendanceDialog = async () => {
  465. _clockUpdate()
  466. }
  467. //设置法定天数
  468. const _clockUpdate = async ()=>{
  469. const formattedData = {
  470. month:Attendancevalue.value['month'],
  471. number:Attendancevalue.value['day'],
  472. typeA:Attendancevalue.value['typeA'],
  473. typeB:Attendancevalue.value['typeB'],
  474. typeC:Attendancevalue.value['typeC'],
  475. sys_id:'[1010/郑梅芳]'
  476. };
  477. console.log(formattedData)
  478. const response = await clockUpdate(formattedData);
  479. if (response.code === 0) {
  480. ElMessage({
  481. type: 'success',
  482. message: '成功'
  483. })
  484. AttendanceVisible.value=false
  485. }else{
  486. ElMessage({
  487. type: 'error',
  488. message: '失败'
  489. })
  490. }
  491. }
  492. //获取小时数
  493. const getdays = () => {
  494. console.log(Attendancevalue.value['day'])
  495. if(Attendancevalue.value['day']!=''){
  496. Attendancevalue.value['typeA']=Attendancevalue.value['day']*7.5
  497. Attendancevalue.value['typeB']=Attendancevalue.value['day']*8
  498. Attendancevalue.value['typeC']=Attendancevalue.value['day']*8
  499. }else{
  500. ElMessage({
  501. type: 'error',
  502. message: '请输入法定天数'
  503. })
  504. }
  505. }
  506. // 修改关闭弹窗
  507. const closeDialog = () => {dialogFormVisible.value = false,AttendanceVisible.value=false}
  508. // 弹窗确定
  509. const enterDialog = async () => {
  510. console.log(formDataTest.value['出生日期'])
  511. if(formDataTest.value['出生日期'] === '' || formDataTest.value['出生日期'] === null){
  512. ElMessage({
  513. type: 'error',
  514. message: '出生日期不能为空'
  515. })
  516. return false;
  517. }
  518. if(formDataTest.value['身份证号'] === '' || formDataTest.value['身份证号'] === null){
  519. ElMessage({
  520. type: 'error',
  521. message: '身份证号不能为空'
  522. })
  523. return false;
  524. }
  525. _ygjbzledit();
  526. }
  527. //修改员工资料
  528. const _ygjbzledit = async ()=>{
  529. const formattedData = {
  530. '员工编号': formDataTest.value['员工编号'],
  531. '员工姓名': formDataTest.value['员工姓名'],
  532. '性别': formDataTest.value['性别'],
  533. '出生日期': formDataTest.value['出生日期'],
  534. '身份证号': formDataTest.value['身份证号'],
  535. '职称职务': formDataTest.value['职称职务'],
  536. '所在部门': formDataTest.value['所在部门'],
  537. '聘用日期': formDataTest.value['聘用日期'],
  538. '转正日期': formDataTest.value['转正日期'],
  539. '扣减司龄': formDataTest.value['扣减司龄'] ? formDataTest.value['扣减司龄'] : '0',
  540. '人员类别': formDataTest.value['人员类别'],
  541. '人员性质': formDataTest.value['人员性质'],
  542. '班次类型': formDataTest.value['班次类型'],
  543. '薪酬核算分组': formDataTest.value['薪酬核算分组'],
  544. '工资表类别': formDataTest.value['工资表类别'],
  545. 'U8在职': formDataTest.value['U8在职'],
  546. '在职状态': formDataTest.value['在职状态'],
  547. '部门编码': formDataTest.value['部门编码'],
  548. };
  549. try {
  550. const ygjbzledit_eddt = await ygjbzledit(formattedData);
  551. if (ygjbzledit_eddt .code === 0) {
  552. dialogFormVisible.value = false;
  553. ElMessage({type: 'success',message: '更新成功'})
  554. } else {
  555. console.log(ygjbzledit_eddt);
  556. ElMessage({ type: 'error',message: '更新失败'})
  557. }
  558. } catch (error) {
  559. console.error(error);
  560. }
  561. }
  562. </script>
  563. <style scoped>
  564. .form-container {
  565. display: flex;
  566. flex-wrap: wrap;
  567. }
  568. .form-column {
  569. /*flex: 1;*/
  570. margin-right: 15px; /* 调整列之间的间距 */
  571. }
  572. /* 左侧输入框宽度调整 */
  573. .form-column .el-form-item .el-input {
  574. width: 150px; /* 调整左侧输入框的宽度 */
  575. }
  576. /* 媒体查询,根据需要调整断点 */
  577. @media screen and (max-width: 768px) {
  578. .form-column {
  579. flex: 1 0 100%; /* 在小屏幕下变成单列布局 */
  580. margin-right: 0;
  581. }
  582. }
  583. /*:deep(.el-table td .cell) {*/
  584. /* line-height: 30px !important;*/
  585. /*}*/
  586. .JKWTree-container {
  587. display: flex;
  588. }
  589. .JKWTree-tree {
  590. /*width: 300px;*/
  591. background-color: #fff;
  592. padding: 10px;
  593. margin-right: 20px;
  594. }
  595. .JKWTree-tree h3 {
  596. font-size: 15px;
  597. font-weight: 700;
  598. margin: 10px 0;
  599. }
  600. .JKWTree-content {
  601. flex: 1;
  602. }
  603. /* 图片上传 */
  604. .upload-box {
  605. width: 200px;
  606. height: 200px;
  607. border: 2px dashed #e2e2e2;
  608. display: flex;
  609. justify-content: center;
  610. align-items: center;
  611. position: relative;
  612. cursor: pointer;
  613. }
  614. .uploaded-image {
  615. width: 100%;
  616. height: 100%;
  617. object-fit: cover;
  618. }
  619. .upload-icon {
  620. font-size: 40px;
  621. color: #c0c4cc;
  622. }
  623. .file-input {
  624. display: none;
  625. }
  626. .el-table .warning-row {
  627. background: oldlace;
  628. }
  629. /* 选中某行时的背景色 */
  630. :deep(.el-table__body tr.current-row) > td {
  631. background: #ff80ff !important;
  632. }
  633. </style>
  634. <style scoped>
  635. :deep(.el-table td .cell) {
  636. line-height: 20px !important;
  637. }
  638. :deep(.el-tabs__header){
  639. margin-bottom: 0;
  640. }
  641. .search{
  642. margin-left: 0px !important;
  643. margin-right: 10px !important;
  644. }
  645. .bt{
  646. margin-left: 2px !important;
  647. padding: 3px !important;
  648. font-size: 12px;
  649. }
  650. .el-tabs__header{
  651. margin: 0px !important;
  652. }
  653. .gva-table-box{
  654. padding: 0px !important;
  655. }
  656. .mab{
  657. margin-bottom: 5px;
  658. }
  659. </style>