生产管理接口联调

dev-scheduling
zhangdi 2 days ago
parent 71ceec6985
commit 80ff5e4132
  1. 4
      src/api/productionManagement/workReportingManagement.js
  2. 209
      src/views/basicData/components/jobTransferAdd.vue
  3. 14
      src/views/basicData/jobTransferManagement.vue
  4. 2
      src/views/productionManagement/shortageApplication/index.vue
  5. 59
      src/views/productionManagement/workReportingManagement/components/wordReporting.vue
  6. 16
      src/views/productionManagement/workReportingManagement/components/workReportingLog.vue

@ -50,10 +50,10 @@ export const uploadPlan = (data) => {
};
// 报工调整-转班
export const shiftTransfer = (params) => {
export const shiftTransfer = (data) => {
return request({
url: '/blade-desk/disTasking/shiftTransfer',
method: 'post',
params
data:data
});
};

@ -4,12 +4,12 @@
<el-row>
<el-col :span="8">
<el-form-item label="所属班组:" prop="deptName">
<el-input v-model="form.deptName" disabled placeholder="请选择"></el-input>
<el-input v-model="form.deptName" disabled placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="工号:" prop="userCode">
<el-input v-model="form.userCode" disabled placeholder="请选择"></el-input>
<el-input v-model="form.userCode" disabled placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
@ -33,102 +33,186 @@
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登录账号:" prop="wcId"> </el-form-item>
</el-col>
<!-- <el-col :span="8">
<el-form-item label="登录账号:" prop="account">
<el-input v-model="form.account" disabled placeholder="请输入"></el-input>
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="所属岗位:" prop="station">
<!-- <el-input v-model="form.station" placeholder="请选择"></el-input> -->
<jhSelect
:value="form.station"
@input="val => (form.station = val)"
placeholder="请搜索选择"
api-url="/blade-system/post/list"
echo-api="/blade-system/post/list"
echoParamsKey="ids"
echo-method="get"
api-method="get"
list-key="records"
total-key="total"
label-key="postName"
value-key="id"
search-key="id"
:debounce-time="500"
/>
<!-- <el-input v-model="form.station" placeholder="请输入"></el-input> -->
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="入职时间:" prop="inJobDate">
<!-- <el-date-picker
:disabled="isDetail"
<el-form-item label="入职时间:" prop="inJobDate">
<el-date-picker
style="width: 100%"
v-model="addForm.projectStartTime"
v-model="form.inJobDate"
type="date"
placeholder="选择日期"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
>
</el-date-picker> -->
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="性别:" prop="gender"> </el-form-item>
<el-form-item label="性别:" prop="gender">
<el-select v-model="form.gender" placeholder="请选择" style="width: 240px">
<el-option
v-for="item in genderData"
:key="item.dictKey"
:label="item.dictValue"
:value="item.dictKey"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="技能等级:" prop="skill"> </el-form-item>
<el-form-item label="技能等级:" prop="skill">
<el-select v-model="form.skill" placeholder="请选择" style="width: 240px">
<el-option
v-for="item in skillData"
:key="item.dictKey"
:label="item.dictValue"
:value="item.dictKey"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="用工类型:" prop="staffType"> </el-form-item>
<el-form-item label="用工类型:" prop="staffType">
<el-select v-model="form.staffType" placeholder="请选择" style="width: 240px">
<el-option
v-for="item in staffTypeData"
:key="item.dictKey"
:label="item.dictValue"
:value="item.dictKey"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="年龄:" prop="age">
<el-input v-model="form.age" placeholder="请选择"> </el-input>
<el-input v-model="form.age" placeholder="请输入"> </el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="民族:" prop="nation">
<el-input v-model="form.nation" placeholder="请选择"> </el-input>
<el-input v-model="form.nation" placeholder="请输入"> </el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="婚姻状态:" prop="marriage"> </el-form-item>
<el-form-item label="婚姻状态:" prop="marriage">
<el-select v-model="form.marriage" placeholder="请选择" style="width: 240px">
<el-option
v-for="item in marriageData"
:key="item.dictKey"
:label="item.dictValue"
:value="item.dictKey"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="身份证号码:" prop="idCard">
<el-input v-model="form.idCard" placeholder="请选择"></el-input>
<el-input v-model="form.idCard" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="籍贯(市县区乡组):" prop="nativePlace">
<el-input v-model="form.nativePlace" placeholder="请选择"></el-input>
<el-form-item label="籍贯(市县区乡组):" prop="nativePlace" label-width="auto">
<el-input v-model="form.nativePlace" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="家庭住址:" prop="address">
<el-input v-model="form.address" placeholder="请选择"></el-input>
<el-input v-model="form.address" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="手机号码:" prop="mobile">
<el-input v-model="form.mobile" placeholder="请选择"></el-input>
<el-input v-model="form.mobile" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="政治面貌:" prop="face">
<el-input v-model="form.face" placeholder="请选择"></el-input>
<el-input v-model="form.face" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="出生年月:" prop="dataBirth"> </el-form-item>
<el-form-item label="出生年月:" prop="dataBirth">
<el-date-picker
v-model="form.dataBirth"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
style="width: 100%"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="毕业时间:" prop="endDate"> </el-form-item>
<el-form-item label="毕业时间:" prop="endDate">
<el-date-picker
v-model="form.endDate"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
style="width: 100%"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="毕业院校:" prop="school">
<el-input v-model="form.school" placeholder="请选择"></el-input>
<el-input v-model="form.school" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="专业:" prop="major">
<el-input v-model="form.major" placeholder="请选择"></el-input>
<el-input v-model="form.major" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="最高学历:" prop="education">
<el-input v-model="form.education" placeholder="请选择"></el-input>
<el-input v-model="form.education" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="参加工作时间:" prop="joinJobDate"> </el-form-item>
<el-form-item label="参加工作时间:" prop="joinJobDate">
<el-date-picker
v-model="form.joinJobDate"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
style="width: 100%"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同到期日期:" prop="contractDuration"> </el-form-item>
<el-form-item label="合同到期日期:" prop="contractDuration">
<el-date-picker
v-model="form.contractDuration"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
style="width: 100%"
></el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
@ -142,6 +226,8 @@
</template>
<script>
import jhSelect from '@/components/jh-select/index.vue';
import { getDictionary } from '@/api/system/dict.js';
import { add, update } from '@/api/workLicense/jobTransferManagement';
export default {
props: {
showDialog: {
@ -164,21 +250,65 @@ export default {
form: {},
rules: {
userId: [{ required: true, message: '请选择用户', trigger: 'change' }],
station:[{ required: true, message: '请选择岗位', trigger: 'change' }],
station: [{ required: true, message: '请选择岗位', trigger: 'change' }],
inJobDate: [{ required: true, message: '请选择入职时间', trigger: 'change' }],
gender: [{ required: true, message: '请选择性别', trigger: 'change' }],
staffType: [{ required: true, message: '请选择用工类型', trigger: 'change' }],
},
genderData: [], //
skillData: [], //
staffTypeData: [], //
marriageData: [
{
dictKey: '0',
dictValue: '未婚',
},
{
dictKey: '1',
dictValue: '已婚',
},
],
};
},
mounted() {
this.openShow = this.showDialog;
console.log(this.title,this.rowData,'rowData');
if (this.title == '修改') {
//
this.rowData.skill=this.rowData.skill+''
this.form = this.rowData;
}
this.getBasicData();
},
methods: {
//
getBasicData() {
//
getDictionary({ code: 'sex' }).then(res => {
this.genderData = res.data.data;
});
//
getDictionary({ code: 'skill_level' }).then(res => {
this.skillData = res.data.data;
});
//
getDictionary({ code: 'staff_type' }).then(res => {
this.staffTypeData = res.data.data;
});
},
//
handleUserChange(value, item) {
console.log(value, item);
if (item) {
this.form.userCode = item.code; //
this.form.userSex = item.sex; //
this.form.deptName = item.deptName; //
this.form.deptId = item.deptId; //
this.form.mobile = item.phone; //
this.form.name = item.realName; //
this.form.account = item.account;
}
},
closeDialog() {
this.openShow = false;
@ -187,7 +317,20 @@ export default {
submit() {
this.$refs.form.validate(async valid => {
if (valid) {
let params = {};
this.form.inJobDate = this.form.inJobDate?this.form.inJobDate + ' 00:00:00':'';
this.form.endDate = this.form.endDate?this.form.endDate + ' 00:00:00':'';
this.form.dataBirth = this.form.dataBirth?this.form.dataBirth + ' 00:00:00':'';
this.form.contractDuration = this.form.contractDuration?this.form.contractDuration + ' 00:00:00':'';
this.form.joinJobDate = this.form.joinJobDate?this.form.joinJobDate + ' 00:00:00':'';
this.form.inJobDate = this.form.inJobDate?this.form.inJobDate + ' 00:00:00':'';
add(this.form).then(res => {
this.closeDialog(true);
this.$message({
type: 'success',
message: '操作成功!',
});
});
}
});
},

@ -19,7 +19,7 @@
@on-load="onLoad"
>
<template #menu-left>
<!-- <el-button type="primary" @click="handleAdd">新增</el-button> -->
<el-button type="primary" @click="handleAdd">新增</el-button>
<el-button type="danger" @click="handleDelete" :disabled="selectionList.length == 0"
>批量删除</el-button
>
@ -40,7 +40,7 @@
<el-button type="primary" @click="handleImport"> </el-button>
</template>
<template #menu="scope">
<!-- <el-button type="text" @click="updateFun(scope.row)">修改</el-button> -->
<el-button type="text" @click="updateFun(scope.row)">修改</el-button>
<el-button v-show="scope.row.phStatus == 7" type="text" @click="transferToFun(scope.row)"
>转岗</el-button
>
@ -150,6 +150,7 @@
v-if="showAddDialog"
:rowData="rowData"
@closeDialog="closeDialog"
:title="title"
></jobTransferAdd>
</basic-container>
</template>
@ -225,13 +226,13 @@ export default {
border: true,
selection: true,
viewBtn: false,
editBtn: true,
addBtn: true,
editBtn: false,
addBtn: false,
delBtn: false,
editBtnText: '修改',
viewBtnText: '详情',
labelWidth: 120,
menuWidth: 240,
menuWidth: 150,
dialogWidth: 1200,
dialogClickModal: false,
searchEnter: true,
@ -726,6 +727,9 @@ export default {
updateFun(row) {
this.showAddDialog = true;
this.title = '修改';
row.skill = row.skill+''
row.staffType=row.staffType+''
row.userId=row.userId+''
this.rowData = row
},
//

@ -164,7 +164,7 @@ export default {
},
{
label: '申报人',
prop: 'userName',
prop: 'createUserName',
search: false,
sortable: true,
filter: true,

@ -58,25 +58,41 @@
<!-- <div style="display: flex; justify-content: flex-end">
<el-button type="primary">保存</el-button>
</div> -->
<el-table :data="tableData" style="margin-top: 20px" >
<el-table :data="tableData" style="margin-top: 20px">
<el-table-column label="数量" prop="workQty" align="center"></el-table-column>
<el-table-column label="报工时间" prop="createTime" align="center"></el-table-column>
<el-table-column label="报工人" prop="workerName" align="center"> </el-table-column>
</el-table>
</el-dialog>
<!-- 转班 -->
<el-dialog append-to-body title="转班" v-model="teamDialog">
<el-dialog append-to-body title="转班" v-model="teamDialog" width="30%">
<el-form ref="teamForm" :model="teamForm" :rules="teamRules">
<el-form-item> 旧班组:{{ data[0].prWorkOrder.makeTeam.tsName }} </el-form-item>
<el-form-item label="新班组" prop="makeTeam">
<el-select v-model="teamForm.makeTeam">
<!-- <el-select v-model="teamForm.makeTeam">
<el-option
v-for="(item, index) in teamSetList"
:key="index"
:label="item.tsName"
:value="item.id"
></el-option>
</el-select>
</el-select> -->
<jhSelect
:value="teamForm.makeTeam"
@input="val => (teamForm.makeTeam = val)"
placeholder="请搜索选择"
api-url="/blade-desk/BA/TeamSet/list?descs=TS_CODE"
echo-api="/blade-desk/BA/TeamSet/list?descs=TS_CODE"
echoParamsKey="ids"
echo-method="get"
api-method="get"
list-key="records"
total-key="total"
label-key="tsName"
value-key="id"
search-key="id"
:debounce-time="500"
/>
</el-form-item>
</el-form>
<template #footer>
@ -98,9 +114,11 @@ import {
getDataByCardNo,
getDataByWpId,
uploadPlan,
shiftTransfer,
} from '@/api/productionManagement/workReportingManagement';
import jhSelect from '@/components/jh-select/index.vue';
export default {
components: {},
components: { jhSelect },
data() {
return {
form: {},
@ -196,6 +214,14 @@ export default {
overflow: true,
search: false,
},
{
label: '班组',
prop: 'tsName',
span: 24,
overflow: true,
search: false,
hide: true,
},
{
label: '班组',
prop: 'tsId',
@ -203,11 +229,19 @@ export default {
overflow: true,
search: false,
cell: true,
remote: true,
filterable: true,
type: 'select',
dicUrl: '/blade-desk/BA/TeamSet/listForSelect',
dicUrl: '/blade-desk/BA/TeamSet/list?descs=TS_CODE',
props: {
label: 'tsName',
value: 'id',
res: 'data.records',
},
onChange: val => {
console.log('val==========', val);
// console.log(value, row);
this.onChangeData(val.item, val.row, 'tsId');
},
},
{
@ -232,21 +266,28 @@ export default {
searchForm: {
cardNo: '',
},
saveLoading:false,
saveLoading: false,
detailDialog: false,
teamDialog: false,
teamForm: {},
teamRules: {
makeTeam: [{ required: true, message: '请选择新班组', trigger: 'blur' }],
},
tableData:[]
tableData: [],
};
},
mounted() {
this.getTeamSetList();
// this.getTeamSetList();
this.getRoleUserList();
},
methods: {
//
onChangeData(item, row, type) {
if (type == 'tsId') {
console.log(item);
row.tsName = item.tsName;
}
},
//
getRoleUserList() {
getRoleUserList({ current: 1, size: 9999999 }).then(res => {

@ -26,7 +26,7 @@
</template>
<script>
import {getRecordList} from '@/api/productionManagement/workReportingManagement.js'
export default {
components: {},
data() {
@ -260,13 +260,13 @@ export default {
},
onLoad(page, params = {}) {
// this.loading = true;
// getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
// this.data = res.data.data.records;
// this.loading = false;
// this.page.total = res.data.data.total;
// this.selectionClear();
// });
this.loading = true;
getRecordList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
this.data = res.data.data.records;
this.loading = false;
this.page.total = res.data.data.total;
this.selectionClear();
});
},
},
mounted() {},

Loading…
Cancel
Save