From f294efb8c01ad8b0704a92d51c14dbd55d898874 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期四, 23 十月 2025 16:49:46 +0800
Subject: [PATCH] 拆分原材料和外购成品的业务流程(报检、下单、检验)
---
src/views/CNAS/personnel/personnelInfo/tabs/job-responsibilities.vue | 95 +++++++++++++++++++++--------------------------
1 files changed, 43 insertions(+), 52 deletions(-)
diff --git a/src/views/CNAS/personnel/personnelInfo/tabs/job-responsibilities.vue b/src/views/CNAS/personnel/personnelInfo/tabs/job-responsibilities.vue
index 1ae74e8..c048536 100644
--- a/src/views/CNAS/personnel/personnelInfo/tabs/job-responsibilities.vue
+++ b/src/views/CNAS/personnel/personnelInfo/tabs/job-responsibilities.vue
@@ -1,22 +1,25 @@
<!-- 宀椾綅鑱岃矗 -->
<template>
<div class="view">
- <div style="display: flex;justify-content: space-between;">
- <el-form ref="page" size="small" :inline="true">
- <el-form-item label="鍛樺伐">
- <el-input v-model="userName" clearable placeholder="璇疯緭鍏ュ憳宸�" size="small" style="width: 20vh;"></el-input>
- </el-form-item>
- <el-form-item>
+ <div style="display: flex;justify-content: space-between">
+ <div style="display: flex;">
+ <div style="margin-bottom: 18px;margin-right: 10px;display: flex;align-items: center;line-height: 32px;">
+ <span style="width: 50px;font-size: 14px;font-weight: 700;color: #606266;">鍛樺伐</span>
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="userName"
+ @keyup.enter.native="refreshTable"></el-input>
+ </div>
+ <div style="line-height: 30px;">
<el-button size="small" type="primary" @click="refreshTable">鏌ヨ</el-button>
- </el-form-item>
- </el-form>
- <div>
+ </div>
+ </div>
+ <div style="line-height: 30px;">
<el-button size="small" type="primary" @click="addPost">鏂板</el-button>
<!-- <el-button size="small" type="primary">瀵煎嚭excel</el-button>-->
</div>
</div>
<div class="table">
- <el-table :data="tableData" v-loading="tableLoading" height="66.5vh" style="width: 100%">
+ <el-table :data="tableData" v-loading="tableLoading" height="66.5vh" style="width: 100%"
+ :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border>
<el-table-column label="搴忓彿" type="index" width="60"></el-table-column>
<el-table-column label="鍛樺伐缂栧彿" min-width="120" prop="account"></el-table-column>
<el-table-column label="宀椾綅鍚嶇О" min-width="180" prop="postName"></el-table-column>
@@ -30,31 +33,28 @@
<el-table-column fixed="right" label="鎿嶄綔" width="140" align="center">
<template v-slot="scope">
<el-button v-if="!isDepartment || scope.row.currentState === '鍏抽棴'" size="small" type="text"
- @click="handleViewClick(scope.row, 'view')">鏌ョ湅
+ @click="handleViewClick(scope.row, 'view')">鏌ョ湅
</el-button>
<el-button v-if="isDepartment && scope.row.currentState !== '鍏抽棴'" size="small" type="text"
- @click="handleViewClick(scope.row, 'edit')">缂栬緫
+ @click="handleViewClick(scope.row, 'edit')">缂栬緫
</el-button>
<el-button size="small" type="text" @click="downLoadPost(scope.row)">瀵煎嚭</el-button>
- <el-button v-if="isDepartment" size="small" style="color: #f56c6c" type="text" @click="deletePost(scope.row)">鍒犻櫎</el-button>
+ <el-button v-if="isDepartment" size="small" style="color: #f56c6c" type="text"
+ @click="deletePost(scope.row)">鍒犻櫎</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]"
- :total="search.total" layout="->,total, sizes, prev, pager, next, jumper"
- background
- style="margin-top: 10px"
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange">
+ :total="search.total" layout="->,total, sizes, prev, pager, next, jumper" background style="margin-top: 10px"
+ @size-change="handleSizeChange" @current-change="handleCurrentChange">
</el-pagination>
</div>
<!-- 鏂板宀椾綅鑱岃矗 -->
- <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="dialogVisible"
- title="鏂板宀椾綅鑱岃矗"
- width="50%" @close="resetForm">
+ <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="dialogVisible" title="鏂板宀椾綅鑱岃矗"
+ width="50%" @close="resetForm">
<el-steps :active="currentStep" align-center finish-status="success">
<el-step v-for="(v, i) in steps" :key="i" :title="v" style="cursor:pointer"
- @click.native="choiceStep(i)"></el-step>
+ @click.native="choiceStep(i)"></el-step>
</el-steps>
<el-form ref="form" :model="form" :rules="rules" label-width="130px">
<div>
@@ -64,44 +64,36 @@
<el-col :span="12">
<el-form-item label="宀椾綅鍚嶇О锛�" prop="postName">
<el-input v-model="form.postName" :disabled="currentStep !== 0 || operationType === 'view'"
- size="small"></el-input>
+ size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="宸ヤ綔鐩爣锛�" prop="jobObjective">
<el-input v-model="form.jobObjective" :disabled="currentStep !== 0 || operationType === 'view'"
- size="small"
- type="textarea"></el-input>
+ size="small" type="textarea"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="宀椾綅鑱岃矗锛�" prop="jobResponsibilities">
<el-input v-model="form.jobResponsibilities" :disabled="currentStep !== 0 || operationType === 'view'"
- size="small"
- type="textarea"></el-input>
+ size="small" type="textarea"></el-input>
</el-form-item>
</el-col>
<el-col v-if="currentStep === 0 || operationType === 'view'" :span="12">
- <el-form-item
- :rules="[{ required: currentStep === 0, message: '璇烽�夋嫨浠昏亴浜�', trigger: 'change' }]"
- label="浠昏亴浜猴細"
- prop="incumbentId">
- <el-select v-model="form.incumbentId" :disabled="operationType === 'view'" clearable
- filterable
- placeholder="璇烽�夋嫨浠昏亴浜�" size="small" style="width: 100%;">
+ <el-form-item :rules="[{ required: currentStep === 0, message: '璇烽�夋嫨浠昏亴浜�', trigger: 'change' }]"
+ label="浠昏亴浜猴細" prop="incumbentId">
+ <el-select v-model="form.incumbentId" :disabled="operationType === 'view'" clearable filterable
+ placeholder="璇烽�夋嫨浠昏亴浜�" size="small" style="width: 100%;">
<el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col v-if="currentStep === 1 || operationType === 'view'" :span="12">
- <el-form-item
- :rules="[{ required: currentStep === 1, message: '璇烽�夋嫨涓荤', trigger: 'blur' }]"
- label="涓荤锛�"
+ <el-form-item :rules="[{ required: currentStep === 1, message: '璇烽�夋嫨涓荤', trigger: 'blur' }]" label="涓荤锛�"
prop="supervisorId">
<el-select v-model="form.supervisorId" :disabled="currentStep !== 1 || operationType === 'view'"
- clearable filterable
- placeholder="璇烽�夋嫨涓荤" size="small" style="width: 100%;">
+ clearable filterable placeholder="璇烽�夋嫨涓荤" size="small" style="width: 100%;">
<el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
@@ -122,8 +114,9 @@
<span slot="footer" class="dialog-footer">
<el-button v-if="currentStep !== 0 && currentStep !== 3" @click="submitForm('3reject')">椹冲洖</el-button>
<el-button v-if="currentStep === 0" @click="submitForm('2save')">淇濆瓨</el-button>
- <el-button v-if="currentStep !== 3" type="primary"
- @click="submitForm('1submit')">{{ currentStep === 0 ? '鎻愪氦' : '閫氳繃' }}</el-button>
+ <el-button v-if="currentStep !== 3" type="primary" @click="submitForm('1submit')">{{ currentStep === 0 ? '鎻愪氦' :
+ '閫氳繃'
+ }}</el-button>
</span>
</el-dialog>
</div>
@@ -136,8 +129,8 @@
personJobResponsibilitiesSave,
personJobResponsibilitiesSelect
} from "@/api/cnas/personal/personJobResponsibilities";
-import {selectUserCondition} from "@/api/cnas/resourceDemand/facilitiesEnvironment/facilitiesAndEnvironment";
-import {mapGetters} from "vuex";
+import { selectUserCondition } from "@/api/cnas/resourceDemand/facilitiesEnvironment/facilitiesAndEnvironment";
+import { mapGetters } from "vuex";
export default {
data() {
@@ -212,7 +205,7 @@
departmentId: this.search.userId,
size: this.search.size,
current: this.search.current,
- }: {
+ } : {
userName: this.userName,
userId: this.search.userId,
size: this.search.size,
@@ -330,10 +323,9 @@
},
// 涓嬭浇宀椾綅鑱岃矗
downLoadPost(row) {
- exportPersonJobResponsibilities({id:row.id}).then(res => {
- const blob = new Blob([res],{ type: 'application/octet-stream' });
- this.$download.saveAs(blob, row.incumbentName+'-宀椾綅鑱岃矗'+'.docx');
- this.$message.success('瀵煎嚭鎴愬姛')
+ exportPersonJobResponsibilities({ id: row.id }).then(res => {
+ const blob = new Blob([res], { type: 'application/octet-stream' });
+ this.$download.saveAs(blob, row.incumbentName + '-宀椾綅鑱岃矗' + '.docx');
})
},
// 鍒犻櫎宀椾綅鑱岃矗
@@ -343,7 +335,7 @@
cancelButtonText: '鍙栨秷',
type: 'warning'
}).then(() => {
- personJobResponsibilitiesDelete({id: row.id}).then(res => {
+ personJobResponsibilitiesDelete({ id: row.id }).then(res => {
if (res.code == 200) {
this.$message.success('鍒犻櫎鎴愬姛');
this.getPostList(this.departId);
@@ -361,7 +353,7 @@
},
// 鑾峰彇璐熻矗浜轰俊鎭帴鍙�
getUserList() {
- selectUserCondition().then(res => {
+ selectUserCondition({type: 2}).then(res => {
if (res.code == 200) {
this.responsibleOptions = res.data
}
@@ -391,5 +383,4 @@
},
};
</script>
-<style scoped>
-</style>
+<style scoped></style>
--
Gitblit v1.9.3