This commit is contained in:
shijing 2026-04-10 13:41:34 +08:00
commit c6288d19aa
3 changed files with 83 additions and 179 deletions

View File

@ -2,20 +2,6 @@
<el-container>
<el-header>
<div class="left-panel">
<el-select
v-model="query.has_blt"
placeholder="有无定位卡"
@change="handleQuery"
clearable
style="margin-left: 2px; width: 120px"
>
<el-option
v-for="item in bltOptions"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
<el-select
v-model="query.type"
placeholder="人员类型"
@ -99,6 +85,7 @@
<template #footer>
<span class="dialog-footer">
<el-button type="info" @click="downloadTemplate">下载模板</el-button>
<el-button @click="importVisible = false"> </el-button>
<el-button
type="primary"
@ -121,102 +108,61 @@
stripe
@resetQuery="resetQuery"
>
<!-- <el-table-column type="selection" width="50"></el-table-column> -->
<el-table-column label="#" type="index" width="50"></el-table-column>
<el-table-column label="人员类型" prop="type" width="160">
<el-table-column label="#" type="index" width="50" fixed="left"></el-table-column>
<el-table-column label="姓名" prop="name" width="100" fixed="left"></el-table-column>
<el-table-column label="身份证号码" prop="id_number" width="180" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="所属部门" prop="belong_dept" width="150" :show-overflow-tooltip="true">
<template #default="scope">
<span v-if="scope.row.belong_dept_">{{ scope.row.belong_dept_.name }}</span>
</template>
</el-table-column>
<el-table-column label="车间" prop="workshop" width="120" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="职务" prop="position" width="120" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="职务聘任日期" prop="office_date" width="120"></el-table-column>
<el-table-column label="类别" prop="type" width="100">
<template #default="scope">
<span
v-if="
scope.row.type == 'employee' || scope.row.type == 'remployee'
"
>[{{ jobOptions[scope.row.job_state] }}]
</span>
<span>{{ userTypeOptions[scope.row.type] }}</span>
<span
v-if="
(scope.row.type == 'employee' ||
scope.row.type == 'remployee') &&
scope.row.is_atwork
"
style="color: green; font-weight: bold"
>
在岗
</span>
</template>
</el-table-column>
<el-table-column label="姓名" prop="name" width="120">
</el-table-column>
<el-table-column label="性别" prop="gender" width="60">
</el-table-column>
<el-table-column label="证件照" prop="photo" width="120">
<el-table-column label="性别" prop="gender" width="60"></el-table-column>
<el-table-column label="银行卡号码" prop="bank_card" width="180" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="入职日期" prop="start_date" width="120"></el-table-column>
<el-table-column label="合同到期日" prop="contract_end_date" width="120"></el-table-column>
<el-table-column label="转正日期" prop="regular_date" width="120"></el-table-column>
<el-table-column label="出生日期" prop="birthday" width="120"></el-table-column>
<el-table-column label="年龄" prop="age" width="60"></el-table-column>
<el-table-column label="工龄" prop="work_years" width="60"></el-table-column>
<el-table-column label="政治面貌" prop="partisan" width="100"></el-table-column>
<el-table-column label="入党时间" prop="join_partisan_date" width="120"></el-table-column>
<el-table-column label="民族" prop="nation" width="80"></el-table-column>
<el-table-column label="婚姻状况" prop="marriage" width="80"></el-table-column>
<el-table-column label="户口性质" prop="hukou_type" width="100"></el-table-column>
<el-table-column label="籍贯" prop="birthplace" width="120" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="户籍地址" prop="hukou_address" width="200" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="现住地址" prop="address" width="200" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="枣庄市职称" prop="zhuanzhi" width="120" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="获得枣庄市职称日期" prop="zhuanzhi_date" width="160"></el-table-column>
<el-table-column label="总院/集团职称" prop="zyjt_zhuanzhi" width="140" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="获得职称日期" prop="zyjt_zhuanzhi_date" width="120"></el-table-column>
<el-table-column label="职业技能等级" prop="skill_rank" width="120"></el-table-column>
<el-table-column label="获得技能等级证书日期" prop="skill_rank_date" width="170"></el-table-column>
<el-table-column label="全日制最高学历" prop="full_edu" width="130"></el-table-column>
<el-table-column label="全日制学校名称" prop="full_edu_school" width="160" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="全日制所学专业" prop="full_edu_major" width="140" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="全日制入学-毕业时间" prop="full_edu_time" width="170" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="非全日制最高学历" prop="part_edu" width="140"></el-table-column>
<el-table-column label="非全日制学校名称" prop="part_edu_school" width="160" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="非全日制所学专业" prop="part_edu_major" width="150" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="非全日制入学-毕业时间" prop="part_edu_time" width="180" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="本人联系电话" prop="phone" width="130"></el-table-column>
<el-table-column label="紧急联系人姓名" prop="emergency_contact" width="130"></el-table-column>
<el-table-column label="紧急联系人电话" prop="emergency_phone" width="130"></el-table-column>
<el-table-column label="所获荣誉" prop="honor" width="160" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="首次缴纳社保日期" prop="first_social_security_date" width="160"></el-table-column>
<el-table-column label="是否为退役军人" prop="is_veteran" width="120"></el-table-column>
<el-table-column label="个人邮箱" prop="email" width="160" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="操作" fixed="right" align="left" width="80">
<template #default="scope">
<el-avatar :size="50" :src="scope.row.photo" shape="square" />
</template>
</el-table-column>
<el-table-column
label="手机号"
prop="phone"
width="120"
></el-table-column>
<el-table-column
label="部门/单位"
prop="belong_dept"
width="180"
:show-overflow-tooltip="true"
>
<template #default="scope">
<span v-if="scope.row.belong_dept_">{{
scope.row.belong_dept_.name
}}</span>
</template>
</el-table-column>
<el-table-column
label="身份证号"
prop="id_number"
width="180"
:show-overflow-tooltip="true"
></el-table-column>
<el-table-column label="系统账号" prop="user" width="180"
><template #default="scope">
<span v-if="scope.row.user">{{ scope.row.user_.username }}</span>
</template></el-table-column
>
<el-table-column label="定位卡号" prop="blt_" width="180" :show-overflow-tooltip="true">
<template #default="scope">
<div v-if="scope.row.blt_">
<div>{{ scope.row.blt_.code }}</div>
<div v-if="scope.row.location">
{{ scope.row.location.area_fix_name }}-
<span v-if="scope.row.location.xx_detail"
>({{ scope.row.location.xx_detail.longitude }},
{{ scope.row.location.xx_detail.latitude }})</span
>
</div>
</div>
</template>
</el-table-column>
<el-table-column
label="创建时间"
prop="create_time"
width="180"
></el-table-column>
<el-table-column label="操作" fixed="right" align="left" width="170">
<template #default="scope">
<!-- <el-button
link
type="primary"
size="small"
@click="Addcertificate(scope.row)"
v-auth="'employee.update'"
>证书
</el-button> -->
<el-button
link
type="success"
size="small"
@click="handleForm('show', scope.row)"
>查看
</el-button>
<el-button
link
type="warning"
@ -225,23 +171,7 @@
@click="handleForm('edit', scope.row)"
>编辑
</el-button>
<el-button
v-if="scope.row.blt_"
link
type="danger"
size="small"
@click="handleBindBlt(20, scope.row)"
>解绑
</el-button>
<el-button
v-else
link
type="primary"
size="small"
@click="handleBindBlt(10, scope.row)"
>绑卡
</el-button>
</template>
</template>
</el-table-column>
</scTable>
</el-main>
@ -383,6 +313,10 @@ export default {
});
this.deptData = genTree(res);
},
downloadTemplate() {
const url = config.API_URL.slice(0, -4) + '/media/temp/花名册-模板.xlsx'
window.open(url, '_blank')
},
submitImport() {
if (!this.importFilePath) {
this.$message.warning('请先选择并上传文件')

View File

@ -241,14 +241,6 @@
</el-table-column>
</scTable>
</el-main>
<el-dialog title="选择物料" v-model="materialsVisible" width="90%">
<materials
style="height: 500px"
:materialType="materialType"
ref="materialsChose"
@choseChange="choseChange"
></materials>
</el-dialog>
<check-dialog
v-if="dialog.check"
ref="checkDialog"
@ -325,8 +317,18 @@
<el-dialog title="手动来料" v-model="dialog.create" width="400px">
<el-form :model="createForm" label-width="80px">
<el-form-item label="物料">
<el-button size="small" @click="materialsVisible = true">{{ createForm.material_name || '选择物料' }}</el-button>
</el-form-item>
<xtSelect
v-model="createForm.material"
:label="createForm.material_name"
:apiObj="$API.mtm.material.list"
:params="{ process_todo: process }"
style="width:100%"
@change="(row) => createForm.material_name = row && row.name"
>
<el-table-column label="名称" prop="name" />
<el-table-column label="规格" prop="specification" />
</xtSelect>
</el-form-item>
<el-form-item label="批次号">
<el-input v-model="createForm.batch" />
</el-form-item>
@ -343,7 +345,6 @@
</template>
<script>
import { wmState } from "@/utils/enum.js";
import materials from "./../mtm/materials.vue";
import checkDialog from "./check_form.vue";
import showDrawer from "./check_drawer.vue";
import scrapDialog from "./handover_form.vue";
@ -376,7 +377,6 @@ export default {
components: {
wprDialog,
saveDialog,
materials,
checkDialog,
showDrawer,
scrapDialog,
@ -418,10 +418,6 @@ export default {
{ value: false, name: "未合批"},
{ value: true, name: "已合批"},
],
queryWm: {
search: "",
material: "",
},
wmItem:{},
wprParams:{
page:0,
@ -434,10 +430,8 @@ export default {
showBatch: "",
wmMaterial:'',
cate_type:'',
materialType: "wm",
showWprList: false,
limitedWatch:false,
materialsVisible:false,
visibleDrawer: false,
wprApiObj:this.$API.wpm.wpr.list,
apiObjPrint:this.$API.cm.labelmat.fromWm,
@ -485,10 +479,6 @@ export default {
this.$refs.saveDialog.open("add");
});
},
materialsChoses(str) {
this.materialType = str;
this.materialsVisible = true;
},
tomio(type) {
let that = this;
that.cate_type=type;
@ -594,19 +584,14 @@ export default {
},
//
table_create() {
this.createForm = { material: '', material_name: '', batch: '', count: 0 };
this.createForm = { material: '', material_name: '', batch: '', count: 0, mgroup: this.mgroupId };
this.dialog.create = true;
},
choseChange(data) {
this.createForm.material = data.id;
this.createForm.material_name = data.name;
this.materialsVisible = false;
},
submitCreate() {
let that = this;
if (!that.createForm.material) { that.$message.warning('请选择物料'); return; }
if (!that.createForm.batch) { that.$message.warning('请输入批次号'); return; }
let data = { material: that.createForm.material, batch: that.createForm.batch, count: that.createForm.count, mgroup: that.mgroupId };
let data = { material: that.createForm.material, batch: that.createForm.batch, count: that.createForm.count, mgroup: that.createForm.mgroup };
that.$API.wpm.wmaterial.create.req(data).then(() => {
that.$message.success('来料成功');
that.dialog.create = false;

View File

@ -131,14 +131,6 @@
</el-table-column>
</scTable>
</el-main>
<el-dialog title="选择物料" v-model="materialsVisible" width="90%">
<materials
style="height: 500px"
:materialType="materialType"
ref="materialsChose"
@choseChange="choseChange"
></materials>
</el-dialog>
<!-- 检验 -->
<!-- <check-dialog
v-if="dialog.save"
@ -200,7 +192,17 @@
<el-dialog title="手动来料" v-model="dialog.create" width="400px">
<el-form :model="createForm" label-width="80px">
<el-form-item label="物料">
<el-button size="small" @click="materialsVisible = true">{{ createForm.material_name || '选择物料' }}</el-button>
<xtSelect
v-model="createForm.material"
:label="createForm.material_name"
:apiObj="$API.mtm.material.list"
:params="{ process_todo: processId }"
style="width:100%"
@change="(row) => createForm.material_name = row && row.name"
>
<el-table-column label="名称" prop="name" />
<el-table-column label="规格" prop="specification" />
</xtSelect>
</el-form-item>
<el-form-item label="批次号">
<el-input v-model="createForm.batch" />
@ -218,7 +220,6 @@
</template>
<script>
import { wmState } from "@/utils/enum.js";
import materials from "./../mtm/materials.vue";
import printDialog from "./../template/printmaterial.vue";
import checkDialog from "./check_form.vue";
import showDrawer from "./check_drawer.vue";
@ -250,7 +251,6 @@ export default {
},
components: {
saveDialog,
materials,
checkDialog,
showDrawer,
scrapDialog,
@ -288,17 +288,11 @@ export default {
{ value: 20, name: "不合格"},
{ value: 30, name: "返工"},
],
queryWm: {
search: "",
material: "",
},
queryState: null,
codeText2: "",
codeText4: "",
cate_type:'',
materialType: "wm",
changebatch:false,
materialsVisible:false,
visibleDrawer: false,
apiObjPrint:this.$API.cm.labelmat.fromWm,
wmId:'',
@ -359,10 +353,6 @@ export default {
this.$refs.scrapDialog.open("add",handoverb,30);
});
},
materialsChoses(str) {
this.materialType = str;
this.materialsVisible = true;
},
searchStateChange(){
let that = this;
that.query.state = null;
@ -462,19 +452,14 @@ export default {
},
//
table_create() {
this.createForm = { material: '', material_name: '', batch: '', count: 0 };
this.createForm = { material: '', material_name: '', batch: '', count: 0, mgroup: this.mgroupId };
this.dialog.create = true;
},
choseChange(data) {
this.createForm.material = data.id;
this.createForm.material_name = data.name;
this.materialsVisible = false;
},
submitCreate() {
let that = this;
if (!that.createForm.material) { that.$message.warning('请选择物料'); return; }
if (!that.createForm.batch) { that.$message.warning('请输入批次号'); return; }
let data = { material: that.createForm.material, batch: that.createForm.batch, count: that.createForm.count, mgroup: that.mgroupId };
let data = { material: that.createForm.material, batch: that.createForm.batch, count: that.createForm.count, mgroup: that.createForm.mgroup };
that.$API.wpm.wmaterial.create.req(data).then(() => {
that.$message.success('来料成功');
that.dialog.create = false;