Compare commits

..

No commits in common. "df530abb90e478e0587860f57c09d6aa1077218f" and "319e0ac90ddc7ed627c165e1c273ec14172da5c4" have entirely different histories.

23 changed files with 3477 additions and 776 deletions

View File

@ -6,7 +6,7 @@
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {
"local": "vue-cli-service serve --mode local", "local": "vue-cli-service serve --mode local",
"dev": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --mode dev", "dev": "vue-cli-service serve --mode dev",
"front": "vue-cli-service serve --mode front", "front": "vue-cli-service serve --mode front",
"build:prod": "vue-cli-service build --mode prod", "build:prod": "vue-cli-service build --mode prod",
"build:stage": "vue-cli-service build --mode stage", "build:stage": "vue-cli-service build --mode stage",

View File

@ -66,10 +66,3 @@ export function getCoreDepartmentList(query) {
params: query params: query
}) })
} }
export function getDepartmentList(query) {
return request({
url: '/system/dept/list',
method: 'get',
params: query
})
}

View File

@ -8,13 +8,7 @@ export function createGroupRule(data) {
data: data data: data
}) })
} }
// 作废排班规则
export function disableGroupRule(id) {
return request({
url: '/base/group-scheduling-rule/disable?id=' + id,
method: 'post',
})
}
// 更新排班规则基础信息 // 更新排班规则基础信息
export function updateGroupRule(data) { export function updateGroupRule(data) {
return request({ return request({

View File

@ -5,6 +5,13 @@
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
*/ */
/*
* @Author: zhp
* @Date: 2024-07-12 15:31:41
* @LastEditTime: 2024-07-22 09:33:20
* @LastEditors: zhp
* @Description:
*/
import request from '@/utils/request' import request from '@/utils/request'
@ -19,7 +26,7 @@ export function getItemPageData(data) {
return request({ return request({
url: '/base/equipment-check-program/page', url: '/base/equipment-check-program/page',
method: 'get', method: 'get',
params: data data
}) })
} }

View File

@ -38,8 +38,15 @@
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span='6'> <el-col :span='6'>
<el-form-item label="发货负责人" prop="deliveryPerson"> <el-form-item label="发货负责人" prop="deliveryPersonId">
<el-input v-model="form.deliveryPerson"></el-input> <el-select v-model="form.deliveryPersonId" placeholder="请选择" style="width: 100%;" filterable>
<el-option
v-for="item in personList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span='6'> <el-col :span='6'>
@ -68,6 +75,7 @@
</el-form> </el-form>
</template> </template>
<script> <script>
import { getWorkerList } from '@/api/base/worker'
import { deliveryLogCreate, deliveryLogUpdate, getDeliveryLog, listOrderList } from '@/api/base/delivery' import { deliveryLogCreate, deliveryLogUpdate, getDeliveryLog, listOrderList } from '@/api/base/delivery'
export default { export default {
name: 'AddOrUpdate', name: 'AddOrUpdate',
@ -79,7 +87,7 @@ export default {
name: '', name: '',
code: '', code: '',
deliveryTime: null, deliveryTime: null,
deliveryPerson: '', deliveryPersonId: '',
principal: '', principal: '',
principalCall: '', principalCall: '',
principalCost: 0.00, principalCost: 0.00,
@ -92,6 +100,7 @@ export default {
code: [{ required: true, message: "发货单号不能为空", trigger: "blur" }] code: [{ required: true, message: "发货单号不能为空", trigger: "blur" }]
}, },
orderList: [], orderList: [],
personList: []
} }
}, },
methods: { methods: {
@ -109,6 +118,9 @@ export default {
listOrderList().then(res => { listOrderList().then(res => {
this.orderList = res.data || [] this.orderList = res.data || []
}) })
getWorkerList().then(res => {
this.personList = res.data || []
})
}, },
submitForm() { submitForm() {
this.$refs['addOrUpdate'].validate((valid) => { this.$refs['addOrUpdate'].validate((valid) => {

View File

@ -252,7 +252,7 @@ export default {
computed: {}, computed: {},
created() { created() {
this.fillLineOptions(); this.fillLineOptions();
// this.fillProductOptions(); this.fillProductOptions();
}, },
mounted() { mounted() {
// window.addEventListener('resize', () => { // window.addEventListener('resize', () => {
@ -284,23 +284,23 @@ export default {
); );
}, },
// async fillProductOptions() { async fillProductOptions() {
// const { data } = await this.$axios({ const { data } = await this.$axios({
// url: '/base/core-product/listAll', url: '/base/core-product/listAll',
// method: 'get', method: 'get',
// }); });
// const cfg = this.searchBarFormConfig.find( const cfg = this.searchBarFormConfig.find(
// (item) => item.__index == 'product' (item) => item.__index == 'product'
// ); );
// this.$set( this.$set(
// cfg, cfg,
// 'selectOptions', 'selectOptions',
// data.map((item) => ({ data.map((item) => ({
// id: item.id, id: item.id,
// name: item.name, name: item.name,
// })) }))
// ); );
// }, },
async getList() { async getList() {
const { data } = await this.$axios({ const { data } = await this.$axios({

View File

@ -1,100 +1,160 @@
<!-- <!--
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: zwq * @LastEditors: zhp
* @LastEditTime: 2024-11-18 09:51:03 * @LastEditTime: 2024-07-31 09:48:36
* @Description: * @Description:
--> -->
<template> <template>
<el-drawer :visible.sync="visible" :show-close="false" :wrapper-closable="true" :before-close="beforeClose" <el-drawer
class="drawer" size="60%"> :visible.sync="visible"
<small-title slot="title" :no-padding="true"> :show-close="false"
{{ isdetail ? '详情' : !dataForm.id ? '新增' : '编辑' }} :wrapper-closable="true"
</small-title> :before-close="beforeClose"
<div class="content"> class="drawer"
<div class="visual-part"> size="60%">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" <small-title slot="title" :no-padding="true">
label-width="100px" label-position="top"> {{ isdetail ? '详情' : !dataForm.id ? '新增' : '编辑' }}
<el-row :gutter="20"> </small-title>
<el-col :span="8"> <div class="content">
<el-form-item label="巡检单名称" prop="name"> <div class="visual-part">
<el-input v-model="dataForm.name" :disabled="isdetail" placeholder="请输入巡检单名称" /> <el-form
</el-form-item> :model="dataForm"
</el-col> :rules="dataRule"
<el-col :span="8"> ref="dataForm"
<el-form-item label="部门" prop="departmentId"> @keyup.enter.native="dataFormSubmit()"
<el-select v-model="dataForm.departmentId" :disabled="isdetail" :placeholder="`请选择部门`" label-width="100px"
style="width: 100%"> label-position="top">
<el-option v-for="opt in departmentOptions" :key="opt.id" :label="opt.name" :value="opt.id" /> <el-row :gutter="20">
</el-select> <el-col :span="8">
</el-form-item> <el-form-item label="巡检单名称" prop="name">
</el-col> <el-input v-model="dataForm.name" :disabled="isdetail" placeholder="请输入巡检单名称" />
<el-col :span="8"> </el-form-item>
<el-form-item label="班次" prop="groupClass"> </el-col>
<el-select v-model="dataForm.groupClass" filterable clearable multiple :disabled="isdetail" <el-col :span="8">
style="width: 100%" placeholder="请选择班次"> <el-form-item label="部门" prop="departmentId">
<el-option v-for="d in groupOptions" :key="d.id" :label="d.label" :value="d.label" /> <el-select
</el-select> v-model="dataForm.departmentId"
</el-form-item> :disabled="isdetail"
</el-col> :placeholder="`请选择部门`"
</el-row> style="width: 100%">
<el-row :gutter="20"> <el-option
<el-col :span="8"> v-for="opt in departmentOptions"
<el-form-item label="巡检人" prop="checkPerson"> :key="opt.id"
<!-- <el-input v-model="dataForm.checkPerson" :disabled="isdetail" placeholder="请输入巡检人" /> --> :label="opt.name"
:value="opt.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="班次" prop="groupClass">
<el-select
v-model="dataForm.groupClass"
filterable
clearable
multiple
:disabled="isdetail"
style="width: 100%"
placeholder="请选择班次">
<el-option
v-for="d in groupOptions"
:key="d.id"
:label="d.label"
:value="d.label" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="巡检人" prop="checkPerson">
<el-select
v-model="dataForm.checkPerson"
:placeholder="`请选择巡检人`"
multiple
clearable
:disabled="isdetail"
filterable
style="width: 100%">
<el-option
v-for="opt in inspectorOptions"
:key="opt.value"
:label="opt.label"
:value="opt.label" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="实际巡检时间" prop="actualCheckTime">
<el-date-picker
v-model="dataForm.actualCheckTime"
type="datetime"
:disabled="isdetail"
placeholder="请选择实际巡检时间"
value-format="timestamp"
style="width: 100%" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<el-select v-model="dataForm.checkPerson" :placeholder="`请选择巡检人`" multiple clearable <div v-if="idAttrShow">
:disabled="isdetail" filterable style="width: 100%"> <small-title>
<el-option v-for="opt in inspectorOptions" :key="opt.value" :label="opt.label" :value="opt.label" /> 巡检内容
</el-select> </small-title>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="实际巡检时间" prop="actualCheckTime">
<el-date-picker v-model="dataForm.actualCheckTime" type="datetime" :disabled="isdetail"
placeholder="请选择实际巡检时间" value-format="timestamp" style="width: 100%" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div v-if="idAttrShow"> <div v-if="!isdetail" style="display: flex">
<small-title> <SearchBar
巡检内容 :formConfigs="searchBarFormConfig"
</small-title> ref="attr-search-bar"
@headBtnClick="handleSearchBarBtnClick" />
<!-- <div class="action_btn"> -->
<el-button type="text" class="action_btn" @click="addNew()">
<span style="display: inline-block;">
<svg-icon style="width: 14px; height: 14px" class="item-icon" icon-class="table_add" />
<span class="add">添加内容</span>
</span>
</el-button>
<!-- </div> -->
</div>
<base-table
:table-props="tableProps"
:page="listQuery.pageNo"
:limit="listQuery.pageSize"
:table-data="detList">
<method-btn
v-if="!isdetail"
slot="handleBtn"
:width="120"
label="操作"
:method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
<pagination
v-show="listQuery.total > 0"
:total="listQuery.total"
:page.sync="listQuery.pageNo"
:limit.sync="listQuery.pageSize"
:page-sizes="[5, 10, 15]"
@pagination="getList" />
</div>
<div v-if="!isdetail" style="display: flex"> </div>
<SearchBar :formConfigs="searchBarFormConfig" ref="attr-search-bar" @headBtnClick="handleSearchBarBtnClick" />
<!-- <div class="action_btn"> -->
<el-button type="text" class="action_btn" @click="addNew()">
<span style="display: inline-block;">
<svg-icon style="width: 14px; height: 14px" class="item-icon" icon-class="table_add" />
<span class="add">添加内容</span>
</span>
</el-button>
<!-- </div> -->
</div>
<base-table :table-props="tableProps" :page="listQuery.pageNo" :limit="listQuery.pageSize"
:table-data="detList">
<method-btn v-if="!isdetail" slot="handleBtn" :width="120" label="操作" :method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
<pagination v-show="listQuery.total > 0" :total="listQuery.total" :page.sync="listQuery.pageNo"
:limit.sync="listQuery.pageSize" :page-sizes="[5, 10, 15]" @pagination="getList" />
</div>
</div> <div v-if="!isdetail" class="drawer-body__footer">
<el-button @click="goback()">取消</el-button>
<!-- <el-button :disabled="isdetail" @click="init(dataForm.id)">重置</el-button> -->
<el-button v-if="isshowConfirm" type="primary" @click="confirmIns()">保存</el-button>
<el-button v-else type="primary" @click="dataFormSubmit()">保存</el-button>
</div>
<div v-if="!isdetail" class="drawer-body__footer"> <attr-add
<el-button @click="goback()">取消</el-button> v-if="addOrUpdateVisible"
<!-- <el-button :disabled="isdetail" @click="init(dataForm.id)">重置</el-button> --> ref="addOrUpdate"
<el-button v-if="isshowConfirm" type="primary" @click="confirmIns()">保存</el-button> :order-id="dataForm.id"
<el-button v-else type="primary" @click="dataFormSubmit()">保存</el-button> @refreshDataList="getList" />
</div> </el-drawer>
<attr-add v-if="addOrUpdateVisible" ref="addOrUpdate" :order-id="dataForm.id" @refreshDataList="getList" />
</el-drawer>
</template> </template>
<script> <script>
@ -245,15 +305,15 @@ export default {
})) }))
); );
} }
// const workerlist = await this.$axios('/base/core-worker/listAll'); const workerlist = await this.$axios('/base/core-worker/listAll');
// if (workerlist.code == 0) { if (workerlist.code == 0) {
// inspectorList = inspectorList.concat( inspectorList = inspectorList.concat(
// workerlist.data.map((item) => ({ workerlist.data.map((item) => ({
// label: item.name, label: item.name,
// value: item.id, value: item.id,
// })) }))
// ); );
// } }
this.inspectorOptions = inspectorList; this.inspectorOptions = inspectorList;
// const res1 = await groupClassesListAll(); // const res1 = await groupClassesListAll();
// this.groupOptions = res1.data || []; // this.groupOptions = res1.data || [];
@ -393,12 +453,9 @@ export default {
// } // }
this.$axios({ this.$axios({
url: url:
`/base/equipment-check-order/confirm`, `/base/equipment-check-order/confirm?confirmPerson=${this.$store.getters.nickname}`,
method: 'put', method: 'put',
data: { data: [this.dataForm.id],
ids: [this.dataForm.id],
confirmBy: this.$store.getters.nickname,
},
}).then(res =>{ }).then(res =>{
if (res.code == 0) { if (res.code == 0) {
this.visible = false; this.visible = false;

View File

@ -42,7 +42,9 @@
import AddOrUpdate from './add-or-updata'; import AddOrUpdate from './add-or-updata';
import moment from 'moment'; import moment from 'moment';
import basicPageMixin from '@/mixins/lb/basicPageMixin'; import basicPageMixin from '@/mixins/lb/basicPageMixin';
import { exportCheckOrderExcel } from '@/api/equipment/base/maintain/record'; import {
exportCheckOrderExcel,
} from '@/api/equipment/base/maintain/record';
import WaitingListTable from './WaitingListTable.vue'; import WaitingListTable from './WaitingListTable.vue';
// const timeFilter = (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'); // const timeFilter = (val) => moment(val).format('yyyy-MM-DD HH:mm:ss');
@ -74,14 +76,16 @@ export default {
name: 'Confirm', name: 'Confirm',
components: { components: {
WaitingListTable, WaitingListTable,
AddOrUpdate, AddOrUpdate
}, },
mixins: [basicPageMixin], mixins: [basicPageMixin],
data() { data() {
return { return {
addOrUpdateVisible: false, addOrUpdateVisible: false,
recordDetailVisible: false, recordDetailVisible: false,
searchBarKeys: ['name'], searchBarKeys: [
'name'
],
tobeConfirmedIdList: [], tobeConfirmedIdList: [],
searchBarFormConfig: [ searchBarFormConfig: [
{ {
@ -96,51 +100,46 @@ export default {
name: 'search', name: 'search',
color: 'primary', color: 'primary',
}, },
{
type: (this.$auth.hasPermiAnd([
'equipment:check-record:create',
'base:core-worker:query',
'base:core-production-line:query',
'base:core-department:query'
]) || this.$auth.hasPermi('equipment:check-record:update') || this.$auth.hasPermi('equipment:check-record:export')) ? 'separate' : '',
},
{
type: this.$auth.hasPermiAnd([
'equipment:check-record:create',
'base:core-worker:query',
'base:core-production-line:query',
'base:core-department:query'
])
? 'button'
: '',
btnName: '新增',
name: 'add',
plain: true,
color: 'success',
},
{ {
type: type: this.$auth.hasPermi('equipment:check-record:update')
this.$auth.hasPermiAnd([
'equipment:check-record:create',
'base:core-worker:query',
'base:core-production-line:query',
'base:core-department:query',
]) ||
this.$auth.hasPermi('equipment:check-record:update') ||
this.$auth.hasPermi('equipment:check-record:export')
? 'separate'
: '',
},
{
type: this.$auth.hasPermiAnd([
'equipment:check-record:create',
'base:core-worker:query',
'base:core-production-line:query',
'base:core-department:query',
])
? 'button'
: '',
btnName: '新增',
name: 'add',
plain: true,
color: 'success',
},
{
type: this.$auth.hasPermi('equipment:check-record:update')
? 'button' ? 'button'
: '', : '',
btnName: '巡检人批量确认', btnName: '巡检人批量确认',
name: 'batchConfirm', name: 'batchConfirm',
color: 'primary', color: 'primary',
plain: true, plain: true,
}, },
{ {
type: this.$auth.hasPermi('equipment:check-record:update') type: this.$auth.hasPermi('equipment:check-record:update')
? 'button' ? 'button'
: '', : '',
btnName: '确认人批量确认', btnName: '确认人批量确认',
name: 'batchConfirm2', name: 'batchConfirm2',
color: 'primary', color: 'primary',
plain: true, plain: true,
}, },
// { // {
// type: this.$auth.hasPermi('equipment:check-record:export') // type: this.$auth.hasPermi('equipment:check-record:export')
// ? 'button' // ? 'button'
@ -212,14 +211,11 @@ export default {
// } // }
return this.$axios({ return this.$axios({
// url: `/base/equipment-check-order/confirm?confirmPerson=${this.$store.getters.nickname}` + checkPersonParam, // url: `/base/equipment-check-order/confirm?confirmPerson=${this.$store.getters.nickname}` + checkPersonParam,
url: `/base/equipment-check-order/confirm`, url: `/base/equipment-check-order/confirm?confirmPerson=${this.$store.getters.nickname}`,
method: 'put', method: 'put',
data: { data: this.$refs['waiting-list-table'].selectedPlan.map(
ids: this.$refs['waiting-list-table'].selectedPlan.map( (item) => item.id
(item) => item.id ),
),
confirmBy: this.$store.getters.nickname,
},
}); });
}) })
.then((res) => { .then((res) => {
@ -227,38 +223,35 @@ export default {
res.code == 0 && this.$modal.msgSuccess('确认成功'); res.code == 0 && this.$modal.msgSuccess('确认成功');
res.code != 0 && this.$modal.msgError('确认失败'); res.code != 0 && this.$modal.msgError('确认失败');
}) })
.catch(() => {}); .catch(() => { });
case 'batchConfirm2': case 'batchConfirm2':
if (this.$refs['waiting-list-table'].selectedPlan.length == 0) { if (this.$refs['waiting-list-table'].selectedPlan.length == 0) {
this.$message.warning('请选择待确认的设备巡检单'); this.$message.warning('请选择待确认的设备巡检单');
return; return;
} }
this.$modal this.$modal
.confirm('是否确认所有选中巡检单"?') .confirm('是否确认所有选中巡检单"?')
.then(() => { .then(() => {
// let checkPersonParam = ''; // let checkPersonParam = '';
// if (!row.checkPerson || row.checkPerson.trim() == '') { // if (!row.checkPerson || row.checkPerson.trim() == '') {
// /** */ // /** */
// checkPersonParam = `&checkPerson=${this.$store.getters.nickname}`; // checkPersonParam = `&checkPerson=${this.$store.getters.nickname}`;
// } // }
return this.$axios({ return this.$axios({
// url: `/base/equipment-check-order/confirm?confirmPerson=${this.$store.getters.nickname}` + checkPersonParam, // url: `/base/equipment-check-order/confirm?confirmPerson=${this.$store.getters.nickname}` + checkPersonParam,
url: `/base/equipment-check-order/confirm2`, url: `/base/equipment-check-order/confirm2?confirmPerson=${this.$store.getters.nickname}`,
method: 'put', method: 'put',
data: { data: this.$refs['waiting-list-table'].selectedPlan.map(
ids: this.$refs['waiting-list-table'].selectedPlan.map( (item) => item.id
(item) => item.id ),
), });
confirmBy: this.$store.getters.nickname, })
}, .then((res) => {
}); this.getList();
}) res.code == 0 && this.$modal.msgSuccess('确认成功');
.then((res) => { res.code != 0 && this.$modal.msgError('确认失败');
this.getList(); })
res.code == 0 && this.$modal.msgSuccess('确认成功'); .catch(() => { });
res.code != 0 && this.$modal.msgError('确认失败');
})
.catch(() => {});
break; break;
} }
}, },
@ -318,7 +311,7 @@ export default {
}, },
handleSearchBarChange({ param, value }) { handleSearchBarChange({ param, value }) {
console.log('122', param); console.log('122', param)
// if ('specialType' === param) { // if ('specialType' === param) {
// if (!value) { // if (!value) {
// this.setSearchBarEquipmentList(this.allSpecialEquipments); // this.setSearchBarEquipmentList(this.allSpecialEquipments);
@ -334,7 +327,7 @@ export default {
this.loading = true; this.loading = true;
// //
this.recv({ this.recv({
...this.queryParams, ...this.queryParams
}).then((response) => { }).then((response) => {
this.list = response.data.list; this.list = response.data.list;
this.total = response.data.total; this.total = response.data.total;
@ -383,18 +376,18 @@ export default {
// this.title = ''; // this.title = '';
// this.addOrEditTitle = ''; // this.addOrEditTitle = '';
this.addOrUpdateVisible = true; this.addOrUpdateVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.addOrUpdate.init(); this.$refs.addOrUpdate.init();
}); });
}, },
// / // /
// addOrUpdateHandle(id) { // addOrUpdateHandle(id) {
// this.addOrUpdateVisible = true; // this.addOrUpdateVisible = true;
// this.$nextTick(() => { // this.$nextTick(() => {
// this.$refs.addOrUpdate.init(id); // this.$refs.addOrUpdate.init(id);
// }); // });
// }, // },
getConfirmed() { getConfirmed() {
return this.$confirm('是否直接确认巡检记录', '提示', { return this.$confirm('是否直接确认巡检记录', '提示', {
@ -469,12 +462,10 @@ export default {
// checkPersonParam = `&checkPerson=${row.checkPerson}` // checkPersonParam = `&checkPerson=${row.checkPerson}`
// } // }
return this.$axios({ return this.$axios({
url: `/base/equipment-check-order/confirm`, url:
`/base/equipment-check-order/confirm?confirmPerson=${this.$store.getters.nickname}`,
method: 'put', method: 'put',
data: { data: [row.id],
ids: [row.id],
confirmBy: this.$store.getters.nickname,
},
}); });
}) })
.then((res) => { .then((res) => {
@ -487,9 +478,9 @@ export default {
/** 编辑 */ /** 编辑 */
async handleEdit(row) { async handleEdit(row) {
this.addOrUpdateVisible = true; this.addOrUpdateVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.addOrUpdate.init(row.id); this.$refs.addOrUpdate.init(row.id);
}); });
// this.reset(); // this.reset();
// if (row.relatePlan == 1) { // if (row.relatePlan == 1) {
// // // //
@ -510,7 +501,9 @@ export default {
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
this.$modal this.$modal
.confirm('是否确认删除巡检单名称为"' + row.name + '"的数据项?') .confirm(
'是否确认删除巡检单名称为"' + row.name + '"的数据项?'
)
.then(() => { .then(() => {
return this.$axios({ return this.$axios({
url: '/base/equipment-check-order/delete?id=' + row.id, url: '/base/equipment-check-order/delete?id=' + row.id,
@ -525,9 +518,9 @@ export default {
}, },
handleDetail(row) { handleDetail(row) {
this.addOrUpdateVisible = true; this.addOrUpdateVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.addOrUpdate.init(row.id, true); this.$refs.addOrUpdate.init(row.id, true);
}); });
// this.recordDetailVisible = true; // this.recordDetailVisible = true;
// this.$nextTick(() => { // this.$nextTick(() => {
// this.$refs.recordDetailDrawer.show({ // this.$refs.recordDetailDrawer.show({

View File

@ -6,60 +6,84 @@
* @Description: * @Description:
--> -->
<template> <template>
<el-drawer :visible.sync="visible" :show-close="false" :wrapper-closable="true" class="drawer" size="50%"> <el-drawer
<small-title slot="title" :no-padding="true"> :visible.sync="visible"
<!-- {{ isdetail ? '详情' : '添加巡检' }} --> :show-close="false"
{{ '添加内容' }} :wrapper-closable="true"
</small-title> class="drawer"
<div class="content"> size="50%">
<div class="visual-part"> <small-title slot="title" :no-padding="true">
<!-- {{ isdetail ? '详情' : '添加巡检' }} -->
{{ '添加内容' }}
</small-title>
<div class="content">
<div class="visual-part">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<div class="blodTip">巡检单名称</div> <div class="blodTip">巡检单名称</div>
<div class="lightTip">{{ dataForm.name }}</div> <div class="lightTip">{{ dataForm.name }}</div>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="blodTip">部门</div> <div class="blodTip">部门</div>
<div class="lightTip">{{ dataForm.department }}</div> <div class="lightTip">{{ dataForm.department }}</div>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div class="blodTip">计划巡检时间</div> <div class="blodTip">巡检时间</div>
<div class="lightTip">{{ parseTime(dataForm.planCheckTime) }}</div> <div class="lightTip">{{ parseTime(dataForm.planCheckTime) }}</div>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
<el-divider /> <el-divider />
<div class="attr-list"> <div class="attr-list">
<small-title style="margin: 16px 0; padding-left: 8px" :no-padding="true"> <small-title
巡检内容 style="margin: 16px 0; padding-left: 8px"
</small-title> :no-padding="true">
巡检内容
</small-title>
<div v-if="!isdetail" class="action_btn"> <div v-if="!isdetail" class="action_btn">
<template> <template>
<span style="display: inline-block;"> <span style="display: inline-block;">
<el-button type="text" @click="addNew()" icon="el-icon-plus">添加</el-button> <el-button type="text" @click="addNew()" icon="el-icon-plus">添加</el-button>
</span> </span>
</template> </template>
</div> </div>
<base-table :table-props="tableProps" :page="listQuery.pageNo" :limit="listQuery.pageSize" <base-table
:table-data="checkDetList"> :table-props="tableProps"
<method-btn v-if="!isdetail" slot="handleBtn" :width="120" label="操作" :method-list="tableBtn" :page="listQuery.pageNo"
@clickBtn="handleClick" /> :limit="listQuery.pageSize"
</base-table> :table-data="checkDetList">
<pagination v-show="listQuery.total > 0" :total="listQuery.total" :page.sync="listQuery.pageNo" <method-btn
:limit.sync="listQuery.pageSize" :page-sizes="[5, 10, 15]" @pagination="getList" /> v-if="!isdetail"
slot="handleBtn"
:width="120"
label="操作"
:method-list="tableBtn"
@clickBtn="handleClick" />
</base-table>
<pagination
v-show="listQuery.total > 0"
:total="listQuery.total"
:page.sync="listQuery.pageNo"
:limit.sync="listQuery.pageSize"
:page-sizes="[5, 10, 15]"
@pagination="getList" />
<!-- <div class="drawer-body__footer"> <!-- <div class="drawer-body__footer">
<el-button type="primary" @click="goback()">关闭</el-button> <el-button type="primary" @click="goback()">关闭</el-button>
</div> --> </div> -->
</div> </div>
</div> </div>
<attr-add v-if="addOrUpdateVisible" ref="addOrUpdate" :order-id="dataForm.id" @refreshDataList="getList" /> <attr-add
</el-drawer> v-if="addOrUpdateVisible"
ref="addOrUpdate"
:order-id="dataForm.id"
@refreshDataList="getList" />
</el-drawer>
</template> </template>
<script> <script>
@ -87,13 +111,8 @@ const tableProps = [
}, },
{ {
prop: 'program', prop: 'program',
label: '巡检项目', label: '检查项目',
}, }
{
prop: 'checkResult',
label: '巡检结果',
},
]; ];
export default { export default {

View File

@ -17,7 +17,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="默认巡检结果" prop="resultType"> <el-form-item label="默认巡检结果" prop="resultType">
<el-select v-model="dataForm.resultType" placeholder="请选择默认保养结果" @change="handleClear"> <el-select v-model="dataForm.resultType" placeholder="请选择默认保养结果">
<el-option v-for="dict in resultList" :key="dict.id" :label="dict.name" :value="dict.id" /> <el-option v-for="dict in resultList" :key="dict.id" :label="dict.name" :value="dict.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -38,16 +38,13 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row v-else-if="dataForm.resultType === 2" :gutter="24"> <el-row v-else-if="dataForm.resultType === 2" :gutter="24">
<el-col :span="11"> <el-col :span="12">
<el-form-item prop="minValue"> <el-form-item prop="minValue">
<el-input oninput="value=value.replace(/[^\-\d.]/g, '')" v-model="dataForm.minValue" placeholder="请输入最小值" /> <el-input oninput="value=value.replace(/[^\-\d.]/g, '')" v-model="dataForm.minValue" placeholder="请输入最小值" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="12">
<el-form-item prop="maxValue">
</el-col>
<el-col :span="9">
<el-form-item prop="maxValue" label-width="20">
<el-input @change="handleChange" oninput="value=value.replace(/[^\-\d.]/g, '')" v-model="dataForm.maxValue" <el-input @change="handleChange" oninput="value=value.replace(/[^\-\d.]/g, '')" v-model="dataForm.maxValue"
placeholder="请输入最大值" /> placeholder="请输入最大值" />
</el-form-item> </el-form-item>
@ -116,12 +113,7 @@ export default {
this.getDict() this.getDict()
console.log('我看看', this.dataForm) console.log('我看看', this.dataForm)
}, },
methods: { methods: {
handleClear() {
this.dataForm.minValue = undefined
this.dataForm.maxValue = undefined
this.dataForm.maintainResult = undefined
},
async getDict() { async getDict() {
// //
const res = await getList(); const res = await getList();

View File

@ -36,7 +36,7 @@ const tableProps = [
align:'center', align:'center',
}, },
{ {
prop: 'checkResult', prop: 'maintainResult',
label: '默认巡检结果', label: '默认巡检结果',
align: 'center', align: 'center',
}, },
@ -102,8 +102,7 @@ export default {
getDataList(id) { getDataList(id) {
this.dataListLoading = true; this.dataListLoading = true;
this.queryParams.equipmentTypeId = id this.queryParams.equipmentTypeId = id
console.log(id); this.urlOptions.getDataListURL(this.listQuery).then(response => {
this.urlOptions.getDataListURL(this.queryParams).then(response => {
this.tableData = response.data.list; this.tableData = response.data.list;
this.listQuery.total = response.data.total; this.listQuery.total = response.data.total;
this.dataListLoading = false this.dataListLoading = false

View File

@ -6,32 +6,55 @@
--> -->
<template> <template>
<el-form ref="form" :model="form" :size="size" :label-position="labelPosition" v-loading="formLoading"> <el-form
<el-row :gutter="20"> ref="form"
<el-col :span="12"> :model="form"
<el-form-item label="设备保养单号" prop="maintainOrderNumber" :rules="[ :size="size"
:label-position="labelPosition"
v-loading="formLoading">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item
label="设备保养单号"
prop="maintainOrderNumber"
:rules="[
{ required: true, message: '请输入设备保养单号', trigger: 'blur' }, { required: true, message: '请输入设备保养单号', trigger: 'blur' },
]"> ]">
<el-input v-model="form.maintainOrderNumber" @change="$emit('update', form)" :placeholder="`请输入保养计划单号`" <el-input
:disabled="disabled" /> v-model="form.maintainOrderNumber"
</el-form-item> @change="$emit('update', form)"
</el-col> :placeholder="`请输入保养计划单号`"
:disabled="disabled" />
</el-form-item>
</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="保养计划名称" prop="name"> <el-form-item label="保养计划名称" prop="name">
<el-input value="---" disabled /> <el-input value="---" disabled />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="部门" prop="departmentId" :rules="[{ required: true, message: '请选择部门', trigger: 'blur' }]"> <el-form-item
<el-select v-model="form.departmentId" :placeholder="`请选择部门`" :disabled="disabled" clearable filterable label="部门"
@change="$emit('update', form)"> prop="departmentId"
<el-option v-for="opt in departmentOptions" :key="opt.value" :label="opt.label" :value="opt.value" /> :rules="[{ required: true, message: '请选择部门', trigger: 'blur' }]">
</el-select> <el-select
</el-form-item> v-model="form.departmentId"
:placeholder="`请选择部门`"
:disabled="disabled"
clearable
filterable
@change="$emit('update', form)">
<el-option
v-for="opt in departmentOptions"
:key="opt.value"
:label="opt.label"
:value="opt.value" />
</el-select>
</el-form-item>
<!-- <el-form-item <!-- <el-form-item
label="设备大类" label="设备大类"
prop="equipmentCategory" prop="equipmentCategory"
:rules="[ :rules="[
@ -49,59 +72,89 @@
:value="opt.value" /> :value="opt.value" />
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="产线" prop="lineId" :rules="[{ required: true, message: '请选择产线', trigger: 'blur' }]"> <el-form-item
<el-select v-model="form.lineId" :placeholder="`请选择产线`" :disabled="disabled" clearable filterable label="产线"
@change="$emit('update', form)"> prop="lineId"
<el-option v-for="opt in lineOptions" :key="opt.value" :label="opt.label" :value="opt.value" /> :rules="[{ required: true, message: '请选择产线', trigger: 'blur' }]">
</el-select> <el-select
</el-form-item> v-model="form.lineId"
</el-col> :placeholder="`请选择产线`"
:disabled="disabled"
clearable
filterable
@change="$emit('update', form)">
<el-option
v-for="opt in lineOptions"
:key="opt.value"
:label="opt.label"
:value="opt.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="计划保养人员" prop="maintainer"> <el-form-item label="计划保养人员" prop="maintainer">
<el-input value="---" disabled /> <el-input value="---" disabled />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="计划开始时间" prop="planStartTime"> <el-form-item label="计划开始时间" prop="planStartTime">
<el-input value="---" disabled /> <el-input value="---" disabled />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="计划结束时间" prop="planEndTime"> <el-form-item label="计划结束时间" prop="planEndTime">
<el-input value="---" disabled /> <el-input value="---" disabled />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="实际开始时间" prop="startTime" :rules="[ <el-form-item
label="实际开始时间"
prop="startTime"
:rules="[
{ required: true, message: '请选择实际开始时间', trigger: 'blur' }, { required: true, message: '请选择实际开始时间', trigger: 'blur' },
]"> ]">
<el-date-picker v-model="form.startTime" type="datetime" :disabled="edit" placeholder="请选择实际开始时间" <el-date-picker
@change="$emit('update', form)" value-format="timestamp"></el-date-picker> v-model="form.startTime"
</el-form-item> type="datetime"
</el-col> :disabled="edit"
placeholder="请选择实际开始时间"
@change="$emit('update', form)"
value-format="timestamp"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="实际结束时间" prop="endTime" :rules="[ <el-form-item
label="实际结束时间"
prop="endTime"
:rules="[
{ required: true, message: '请选择实际结束时间', trigger: 'blur' }, { required: true, message: '请选择实际结束时间', trigger: 'blur' },
]"> ]">
<el-date-picker v-model="form.endTime" type="datetime" :disabled="edit" placeholder="请选择实际结束时间" <el-date-picker
@change="$emit('update', form)" value-format="timestamp"></el-date-picker> v-model="form.endTime"
</el-form-item> type="datetime"
</el-col> :disabled="edit"
placeholder="请选择实际结束时间"
@change="$emit('update', form)"
value-format="timestamp"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="实际保养人员" prop="maintainWorker" :rules="[ <el-form-item
{ required: false, message: '请输入实际保养人员', trigger: 'blur' }, label="实际保养人员"
prop="maintainWorker"
:rules="[
{ required: false, message: '请选择实际保养人员', trigger: 'blur' },
]"> ]">
<el-input v-model="form.maintainWorker" @change="$emit('update', form)" :placeholder="`请输入实际保养人员`" :disabled="disabled" /> <el-select
<!-- <el-select
v-model="form.maintainWorker" v-model="form.maintainWorker"
:placeholder="`请选择实际保养人员`" :placeholder="`请选择实际保养人员`"
:disabled="disabled" :disabled="disabled"
@ -114,17 +167,21 @@
:key="opt.value" :key="opt.value"
:label="opt.label" :label="opt.label"
:value="opt.value" /> :value="opt.value" />
</el-select> --> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" @change="$emit('update', form)" :placeholder="`请输入备注`" :disabled="disabled" /> <el-input
</el-form-item> v-model="form.remark"
</el-col> @change="$emit('update', form)"
</el-row> :placeholder="`请输入备注`"
</el-form> :disabled="disabled" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</template> </template>
<script> <script>
@ -264,6 +321,7 @@ export default {
const urls = [ const urls = [
'/base/core-production-line/listAll', '/base/core-production-line/listAll',
'/system/dept/list-all-simple', '/system/dept/list-all-simple',
'/base/core-worker/listAll',
]; ];
let res; let res;
switch (source) { switch (source) {
@ -271,6 +329,10 @@ export default {
res = await this.$axios(urls[1]); res = await this.$axios(urls[1]);
this.departmentList = res.data || []; this.departmentList = res.data || [];
break; break;
case 'maintainer':
res = await this.$axios(urls[2]);
this.maintainerList = res.data || [];
break;
case 'line': case 'line':
res = await this.$axios(urls[0]); res = await this.$axios(urls[0]);
this.lineList = res.data || []; this.lineList = res.data || [];

View File

@ -6,116 +6,177 @@
--> -->
<template> <template>
<el-drawer :visible.sync="visible" :show-close="false" :wrapper-closable="true" class="drawer" <el-drawer
custom-class="mes-drawer" size="60%" :before-close="beforeClose" @closed="$emit('destroy')"> :visible.sync="visible"
<SmallTitle slot="title">编辑</SmallTitle> :show-close="false"
:wrapper-closable="true"
class="drawer"
custom-class="mes-drawer"
size="60%"
:before-close="beforeClose"
@closed="$emit('destroy')">
<SmallTitle slot="title">编辑</SmallTitle>
<div class="drawer-body flex"> <div class="drawer-body flex">
<div class="drawer-body__content"> <div class="drawer-body__content">
<div class="form-part" style="margin-bottom: 32px"> <div class="form-part" style="margin-bottom: 32px">
<!-- <el-skeleton v-if="!showForm" animated /> --> <!-- <el-skeleton v-if="!showForm" animated /> -->
<el-form class="equipment-info-form" ref="form" :model="form" label-width="200px" label-position="top" <el-form
v-loading="formLoading"> class="equipment-info-form"
<el-row :gutter="20"> ref="form"
<el-col :span="8"> :model="form"
<el-form-item label="保养计划单号" prop="maintainOrderNumber"> label-width="200px"
<!-- :rules="[ label-position="top"
v-loading="formLoading">
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="保养计划单号" prop="maintainOrderNumber">
<!-- :rules="[
{ {
required: true, required: true,
message: '请输入保养计划单号', message: '请输入保养计划单号',
trigger: 'blur', trigger: 'blur',
}, },
]" --> ]" -->
<el-input v-model="form.maintainOrderNumber" disabled :placeholder="`请输入保养计划单号`" /> <el-input
</el-form-item> v-model="form.maintainOrderNumber"
</el-col> disabled
:placeholder="`请输入保养计划单号`" />
</el-form-item>
</el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="保养计划名称" prop="planName"> <el-form-item label="保养计划名称" prop="planName">
<el-input v-model="form.planName" placeholder="请输入保养计划名称" disabled /> <el-input
</el-form-item> v-model="form.planName"
</el-col> placeholder="请输入保养计划名称"
disabled />
</el-form-item>
</el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="部门" prop="departmentId"> <el-form-item label="部门" prop="departmentId">
<!-- :rules="[ <!-- :rules="[
{ required: true, message: '请选择部门', trigger: 'blur' }, { required: true, message: '请选择部门', trigger: 'blur' },
]" --> ]" -->
<el-select v-model="form.departmentId" :placeholder="`请选择部门`" clearable disabled filterable> <el-select
<el-option v-for="opt in departmentOptions" :key="opt.value" :label="opt.label" v-model="form.departmentId"
:value="opt.value" /> :placeholder="`请选择部门`"
</el-select> clearable
</el-form-item> disabled
</el-col> filterable>
<el-option
v-for="opt in departmentOptions"
:key="opt.value"
:label="opt.label"
:value="opt.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="产线" prop="lineId"> <el-form-item label="产线" prop="lineId">
<!-- :rules="[ <!-- :rules="[
{ required: true, message: '请选择产线', trigger: 'blur' }, { required: true, message: '请选择产线', trigger: 'blur' },
]" --> ]" -->
<el-select v-model="form.lineId" :placeholder="`请选择产线`" disabled clearable filterable> <el-select
<el-option v-for="opt in lineOptions" :key="opt.value" :label="opt.label" :value="opt.value" /> v-model="form.lineId"
</el-select> :placeholder="`请选择产线`"
</el-form-item> disabled
</el-col> clearable
filterable>
<el-option
v-for="opt in lineOptions"
:key="opt.value"
:label="opt.label"
:value="opt.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="计划保养人员" prop="maintainer"> <el-form-item label="计划保养人员" prop="maintainer">
<el-select v-model="form.planMaintainWorker" placeholder="请选择计划保养人员" disabled clearable filterable /> <el-select
</el-form-item> v-model="form.planMaintainWorker"
</el-col> placeholder="请选择计划保养人员"
disabled
clearable
filterable />
</el-form-item>
</el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="计划开始时间" prop="planStartTime"> <el-form-item label="计划开始时间" prop="planStartTime">
<el-date-picker v-model="form.planStartTime" type="datetime" disabled placeholder="请选择计划开始时间" <el-date-picker
value-format="timestamp"></el-date-picker> v-model="form.planStartTime"
</el-form-item> type="datetime"
</el-col> disabled
placeholder="请选择计划开始时间"
value-format="timestamp"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="计划结束时间" prop="planEndTime"> <el-form-item label="计划结束时间" prop="planEndTime">
<el-date-picker v-model="form.planEndTime" type="datetime" disabled placeholder="请选择计划结束时间" <el-date-picker
value-format="timestamp"></el-date-picker> v-model="form.planEndTime"
</el-form-item> type="datetime"
</el-col> disabled
placeholder="请选择计划结束时间"
value-format="timestamp"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="实际开始时间" prop="startTime" :rules="[ <el-form-item
label="实际开始时间"
prop="startTime"
:rules="[
{ {
required: true, required: true,
message: '请选择实际开始时间', message: '请选择实际开始时间',
trigger: 'blur', trigger: 'blur',
}, },
]"> ]">
<el-date-picker v-model="form.startTime" type="datetime" placeholder="请选择实际开始时间" <el-date-picker
value-format="timestamp"></el-date-picker> v-model="form.startTime"
</el-form-item> type="datetime"
</el-col> placeholder="请选择实际开始时间"
value-format="timestamp"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="实际结束时间" prop="endTime" :rules="[ <el-form-item
label="实际结束时间"
prop="endTime"
:rules="[
{ {
required: true, required: true,
message: '请选择实际结束时间', message: '请选择实际结束时间',
trigger: 'blur', trigger: 'blur',
}, },
]"> ]">
<el-date-picker v-model="form.endTime" type="datetime" placeholder="请选择实际结束时间" <el-date-picker
value-format="timestamp"></el-date-picker> v-model="form.endTime"
</el-form-item> type="datetime"
</el-col> placeholder="请选择实际结束时间"
value-format="timestamp"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="实际保养人员" prop="maintainWorker" :rules="[ <el-form-item
label="实际保养人员"
prop="maintainWorker"
:rules="[
{ {
required: false, required: false,
message: '请输入实际保养人员', message: '请选择实际保养人员',
trigger: 'blur', trigger: 'blur',
}, },
]"> ]">
<el-input v-model="form.maintainWorker" :placeholder="`请输入实际保养人员`" /> <el-select
<!-- <el-select
v-model="form.maintainWorker" v-model="form.maintainWorker"
:placeholder="`请选择实际保养人员`" :placeholder="`请选择实际保养人员`"
multiple multiple
@ -126,62 +187,89 @@
:key="opt.value" :key="opt.value"
:label="opt.label" :label="opt.label"
:value="opt.value" /> :value="opt.value" />
</el-select> --> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" :placeholder="`请输入备注`" /> <el-input v-model="form.remark" :placeholder="`请输入备注`" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
</div> </div>
<SmallTitle>保养内容</SmallTitle> <SmallTitle>保养内容</SmallTitle>
<div style="margin-top: 12px; position: relative"> <div style="margin-top: 12px; position: relative">
<SearchBar :formConfigs="searchBarFormConfig" ref="attr-search-bar" @headBtnClick="handleSearchBarBtnClick" /> <SearchBar
</div> :formConfigs="searchBarFormConfig"
ref="attr-search-bar"
@headBtnClick="handleSearchBarBtnClick" />
</div>
<div style="margin-top: 12px; position: relative"> <div style="margin-top: 12px; position: relative">
<div style="position: absolute; top: -40px; right: 0"> <div style="position: absolute; top: -40px; right: 0">
<el-button @click="handleAddAttr" type="text"> <el-button @click="handleAddAttr" type="text">
<i class="el-icon-plus"></i> <i class="el-icon-plus"></i>
添加属性 添加属性
</el-button> </el-button>
</div> </div>
<base-table v-loading="attrListLoading" :table-props="attrTableProps" :page="attrQuery?.params.pageNo || 1" <base-table
:limit="attrQuery?.params.pageSize || 10" :table-data="attrList" @emitFun="handleEmitFun"> v-loading="attrListLoading"
<method-btn slot="handleBtn" label="操作" :method-list="tableBtn" @clickBtn="handleTableBtnClick" /> :table-props="attrTableProps"
</base-table> :page="attrQuery?.params.pageNo || 1"
:limit="attrQuery?.params.pageSize || 10"
:table-data="attrList"
@emitFun="handleEmitFun">
<method-btn
slot="handleBtn"
label="操作"
:method-list="tableBtn"
@clickBtn="handleTableBtnClick" />
</base-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination v-show="attrTotal > 0" :total="attrTotal" :page.sync="attrQuery.params.pageNo" <pagination
:limit.sync="attrQuery.params.pageSize" @pagination="getAttrList" /> v-show="attrTotal > 0"
</div> :total="attrTotal"
</div> :page.sync="attrQuery.params.pageNo"
:limit.sync="attrQuery.params.pageSize"
@pagination="getAttrList" />
</div>
</div>
<div class="drawer-body__footer"> <div class="drawer-body__footer">
<el-button style="" @click="handleCancel">取消</el-button> <el-button style="" @click="handleCancel">取消</el-button>
<el-button type="primary" @click="handleConfirm">保存</el-button> <el-button type="primary" @click="handleConfirm">保存</el-button>
<!-- sections的第二项必须是 属性列表 --> <!-- sections的第二项必须是 属性列表 -->
<!-- <el-button <!-- <el-button
v-if="sections[1].allowAdd" v-if="sections[1].allowAdd"
type="primary" type="primary"
@click="handleAddAttr"> @click="handleAddAttr">
添加属性 添加属性
</el-button> --> </el-button> -->
</div> </div>
</div> </div>
<!-- 属性对话框 --> <!-- 属性对话框 -->
<base-dialog :dialogTitle="attrTitle" :dialogVisible="attrFormVisible" width="35%" :append-to-body="true" <base-dialog
custom-class="baseDialog" @close="closeAttrForm" @cancel="closeAttrForm" @confirm="submitAttrForm"> :dialogTitle="attrTitle"
<DialogForm v-if="attrFormVisible" ref="attrForm" v-model="attrForm" :rows="attrRows" /> :dialogVisible="attrFormVisible"
</base-dialog> width="35%"
</el-drawer> :append-to-body="true"
custom-class="baseDialog"
@close="closeAttrForm"
@cancel="closeAttrForm"
@confirm="submitAttrForm">
<DialogForm
v-if="attrFormVisible"
ref="attrForm"
v-model="attrForm"
:rows="attrRows" />
</base-dialog>
</el-drawer>
</template> </template>
<script> <script>
@ -453,7 +541,7 @@ export default {
const urls = [ const urls = [
'/base/core-production-line/listAll', '/base/core-production-line/listAll',
'system/dept/list-all-simple', 'system/dept/list-all-simple',
// '/base/core-worker/listAll', '/base/core-worker/listAll',
]; ];
let res; let res;
switch (source) { switch (source) {
@ -461,10 +549,10 @@ export default {
res = await this.$axios(urls[1]); res = await this.$axios(urls[1]);
this.departmentList = res.data || []; this.departmentList = res.data || [];
break; break;
// case 'maintainer': case 'maintainer':
// res = await this.$axios(urls[2]); res = await this.$axios(urls[2]);
// this.maintainerList = res.data || []; this.maintainerList = res.data || [];
// break; break;
case 'line': case 'line':
res = await this.$axios(urls[0]); res = await this.$axios(urls[0]);
this.lineList = res.data || []; this.lineList = res.data || [];

View File

@ -105,16 +105,14 @@
<el-form-item label="实际保养人员" prop="maintainWorker" :rules="[ <el-form-item label="实际保养人员" prop="maintainWorker" :rules="[
{ {
required: false, required: false,
message: '请输入实际保养人员', message: '请选择实际保养人员',
trigger: 'blur', trigger: 'blur',
}, },
]"> ]">
<el-input v-model="form.maintainWorker" :placeholder="`请输入实际保养人员`" /> <el-select v-model="form.maintainWorker" :placeholder="`请选择实际保养人员`" multiple clearable filterable>
<!-- <el-select v-model="form.maintainWorker" :placeholder="`请选择实际保养人员`" multiple clearable filterable>
<el-option v-for="opt in maintainerOptions" :key="opt.value" :label="opt.label" <el-option v-for="opt in maintainerOptions" :key="opt.value" :label="opt.label"
:value="opt.value" /> :value="opt.value" />
</el-select> --> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -392,12 +390,10 @@ export default {
console.log('111', confirm) console.log('111', confirm)
this.$axios({ this.$axios({
url: url:
'/base/equipment-maintain-log/confirm', '/base/equipment-maintain-log/confirm?confirmPerson=' +
this.$store.getters.userId,
method: 'put', method: 'put',
data: { data: [this.form.id],
ids: [this.form.id],
confirmBy: this.$store.getters.nickname,
},
}).then(res =>{ }).then(res =>{
if (res.code == 0) { if (res.code == 0) {
this.visible = false; this.visible = false;
@ -449,7 +445,7 @@ export default {
method: 'put', method: 'put',
data: { data: {
...this.form, ...this.form,
maintainWorker: this.form.maintainWorker ? this.form.maintainWorker.join(',') :null, maintainWorker: this.form.maintainWorker.join(','),
special: false, special: false,
relatePlan: 2 relatePlan: 2
} }
@ -467,8 +463,8 @@ export default {
url: '/base/equipment-maintain-log/create', url: '/base/equipment-maintain-log/create',
method: 'post', method: 'post',
data: { data: {
...this.form, ...this.form,
maintainWorker: this.form.maintainWorker ? this.form.maintainWorker.join(',') : null, maintainWorker: this.form.maintainWorker.join(','),
special: false, special: false,
relatePlan: 2, relatePlan: 2,
confirmed: false, confirmed: false,
@ -540,7 +536,7 @@ export default {
const urls = [ const urls = [
'/base/core-production-line/listAll', '/base/core-production-line/listAll',
'/system/dept/list-all-simple', '/system/dept/list-all-simple',
// '/base/core-worker/listAll', '/base/core-worker/listAll',
]; ];
let res; let res;
switch (source) { switch (source) {
@ -548,10 +544,10 @@ export default {
res = await this.$axios(urls[1]); res = await this.$axios(urls[1]);
this.departmentList = res.data || []; this.departmentList = res.data || [];
break; break;
// case 'maintainer': case 'maintainer':
// res = await this.$axios(urls[2]); res = await this.$axios(urls[2]);
// this.maintainerList = res.data || []; this.maintainerList = res.data || [];
// break; break;
case 'line': case 'line':
res = await this.$axios(urls[0]); res = await this.$axios(urls[0]);
this.lineList = res.data || []; this.lineList = res.data || [];

View File

@ -287,12 +287,9 @@ export default {
return this.$axios({ return this.$axios({
url: '/base/equipment-maintain-log/confirm', url: '/base/equipment-maintain-log/confirm',
method: 'put', method: 'put',
data:{ data: this.$refs['waiting-list-table'].selectedPlan.map(
ids: this.$refs['waiting-list-table'].selectedPlan.map( (item) => item.id
(item) => item.id ),
),
confirmBy: this.$store.getters.nickname,
},
}); });
// if (res.code == 0) { // if (res.code == 0) {
// this.$message.success(''); // this.$message.success('');
@ -316,12 +313,9 @@ export default {
return this.$axios({ return this.$axios({
url: '/base/equipment-maintain-log/confirm2', url: '/base/equipment-maintain-log/confirm2',
method: 'put', method: 'put',
data: { data: this.$refs['waiting-list-table'].selectedPlan.map(
ids: this.$refs['waiting-list-table'].selectedPlan.map( (item) => item.id
(item) => item.id ),
),
confirmBy: this.$store.getters.nickname,
},
}); });
// if (res.code == 0) { // if (res.code == 0) {
// this.$message.success(''); // this.$message.success('');
@ -553,10 +547,7 @@ export default {
return this.$axios({ return this.$axios({
url: '/base/equipment-maintain-log/confirm', url: '/base/equipment-maintain-log/confirm',
method: 'put', method: 'put',
data: { data: [row.id],
ids: [row.id],
confirmBy: this.$store.getters.nickname,
},
}); });
// if (res.code == 0) { // if (res.code == 0) {
// this.$message.success(''); // this.$message.success('');

View File

@ -135,7 +135,7 @@ export default {
maintainDuration: undefined, maintainDuration: undefined,
remark: undefined, remark: undefined,
firstMaintenanceTime: undefined, firstMaintenanceTime: undefined,
maintainer: null maintainer: undefined
}, },
menuOptions: [], menuOptions: [],
proLineList: [], proLineList: [],
@ -175,8 +175,8 @@ export default {
const resline = await getCorePLList(); const resline = await getCorePLList();
this.proLineList = resline.data; this.proLineList = resline.data;
// //
// const personres = await getWorkerList() const personres = await getWorkerList()
// this.personList = personres.data || [] this.personList = personres.data || []
}, },
getList() { getList() {
// //
@ -259,8 +259,7 @@ export default {
if (this.dataForm.id) { if (this.dataForm.id) {
this.urlOptions.updateURL({ this.urlOptions.updateURL({
...this.dataForm, ...this.dataForm,
maintainer: this.dataForm.maintainer ? this.dataForm.maintainer.join(',') : null, maintainer: this.dataForm.maintainer.join(',')
}).then(response => { }).then(response => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.visible = false; this.visible = false;
@ -271,7 +270,7 @@ export default {
// //
this.urlOptions.createURL({ this.urlOptions.createURL({
...this.dataForm, ...this.dataForm,
maintainer: this.dataForm.maintainer ? this.dataForm.maintainer.join(',') : null, maintainer: this.dataForm.maintainer.join(',')
}).then(response => { }).then(response => {
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");
// this.idAttrShow = true // this.idAttrShow = true

View File

@ -17,7 +17,7 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="默认保养结果" prop="resultType"> <el-form-item label="默认保养结果" prop="resultType">
<el-select v-model="dataForm.resultType" placeholder="请选择默认保养结果" @change="handleClear"> <el-select v-model="dataForm.resultType" placeholder="请选择默认保养结果">
<el-option v-for="dict in resultList" :key="dict.id" :label="dict.name" :value="dict.id" /> <el-option v-for="dict in resultList" :key="dict.id" :label="dict.name" :value="dict.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -39,16 +39,13 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row v-else-if="dataForm.resultType === 2" :gutter="24"> <el-row v-else-if="dataForm.resultType === 2" :gutter="24">
<el-col :span="11"> <el-col :span="12">
<el-form-item prop="minValue"> <el-form-item prop="minValue">
<el-input oninput="value=value.replace(/[^\-\d.]/g, '')" v-model="dataForm.minValue" placeholder="请输入最小值" /> <el-input oninput="value=value.replace(/[^\-\d.]/g, '')" v-model="dataForm.minValue" placeholder="请输入最小值" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="12">
<el-form-item prop="maxValue">
</el-col>
<el-col :span="9">
<el-form-item prop="maxValue" label-width="20">
<el-input @change="handleChange" oninput="value=value.replace(/[^\-\d.]/g, '')" v-model="dataForm.maxValue" <el-input @change="handleChange" oninput="value=value.replace(/[^\-\d.]/g, '')" v-model="dataForm.maxValue"
placeholder="请输入最大值" /> placeholder="请输入最大值" />
</el-form-item> </el-form-item>
@ -105,9 +102,7 @@ export default {
dataRule: { dataRule: {
// materialId: [{ required: true, message: "", trigger: "blur" }], // materialId: [{ required: true, message: "", trigger: "blur" }],
program: [{ required: true, message: "保养项目不能为空", trigger: "blur" }], program: [{ required: true, message: "保养项目不能为空", trigger: "blur" }],
maintainResult: [{ required: true, message: "文本或数值不能为空不能为空", trigger: "blur" }], maintainResult: [{ required: true, message: "默认保养结果不能为空", trigger: "blur" }],
resultType: [{ required: true, message: "默认保养结果不能为空", trigger: "blur" }],
minValue: [{ required: true, message: "最小值不能为空", trigger: "blur" }], minValue: [{ required: true, message: "最小值不能为空", trigger: "blur" }],
maxValue: [{ required: true, message: "最大值不能为空", trigger: "blur" }], maxValue: [{ required: true, message: "最大值不能为空", trigger: "blur" }],
@ -119,12 +114,7 @@ export default {
this.getDict() this.getDict()
console.log('我看看', this.dataForm) console.log('我看看', this.dataForm)
}, },
methods: { methods: {
handleClear() {
this.dataForm.minValue = undefined
this.dataForm.maxValue = undefined
this.dataForm.maintainResult = undefined
},
async getDict() { async getDict() {
// //
const res = await getList(); const res = await getList();

View File

@ -223,13 +223,15 @@ export default {
}, },
methods: { methods: {
initSearchBar() { initSearchBar() {
this.http('/base/core-equipment/listAll', 'get').then(({ data }) => { this.http('/base/core-equipment/page', 'get', {
console.log('data', data); special: false,
pageNo: 1,
pageSize: 999,
}).then(({ data }) => {
this.$set( this.$set(
this.searchBarFormConfig[0], this.searchBarFormConfig[0],
'selectOptions', 'selectOptions',
(data || []).map((item) => ({ (data?.list || []).map((item) => ({
name: item.name, name: item.name,
id: item.id, id: item.id,
})) }))

View File

@ -184,17 +184,16 @@ export default {
], ],
[ [
{ {
input: true, // TODO: or INPUT instead of SELECT select: true, // TODO: or INPUT instead of SELECT
label: '负责人', label: '负责人',
prop: 'responsible', prop: 'responsible',
// url: 'system/user/page', // TODO: url: '/base/core-worker/listAll', // TODO:
// valueKey: 'id', valueKey: 'name',
// labelKey:'username', bind: {
// bind: { filterable: true,
// filterable: true, clearable: true,
// clearable: true, multiple: true
// multiple: true },
// },
}, },
], ],
[ [

View File

@ -135,9 +135,8 @@ export default {
{ {
select: true, select: true,
label: '备件名称', label: '备件名称',
prop: 'productMaterialId', prop: 'productMaterialId',
url: '/base/core-product-material/listAll', // TODO: options: [],
// options: [],
bind: { bind: {
filterable: true, filterable: true,
clearable: false, clearable: false,

View File

@ -44,7 +44,6 @@ import {
deleteGroupRule, deleteGroupRule,
updateGroupRule, updateGroupRule,
getGroupRule, getGroupRule,
disableGroupRule
} from '@/api/base/groupSchedulingRule'; } from '@/api/base/groupSchedulingRule';
import schedulingRuleConfigAdd from './components/schedulingRuleConfigAdd.vue'; import schedulingRuleConfigAdd from './components/schedulingRuleConfigAdd.vue';
import { formatDate } from '@/utils'; import { formatDate } from '@/utils';
@ -232,9 +231,14 @@ export default {
'是否确认作废序号为"' + row.planName + '"的数据项?' '是否确认作废序号为"' + row.planName + '"的数据项?'
,'提示') ,'提示')
.then(() => { .then(() => {
disableGroupRule(row.id).then((response) => { getGroupRule(row.id).then((response) => {
let datas = response.data;
datas.list = datas.sequenceList;
datas.enabled = 0;
updateGroupRule(datas).then(() => {
_this.getList(); _this.getList();
_this.$modal.msgSuccess('操作成功'); _this.$modal.msgSuccess('操作成功');
});
}); });
}) })
.catch(() => {}); .catch(() => {});

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2024-09-26 14:08:58 * @Date: 2024-09-26 14:08:58
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2024-11-13 15:23:25 * @LastEditTime: 2024-11-06 09:52:59
* @Description: * @Description:
--> -->
<template> <template>
@ -92,7 +92,7 @@ const tableProps = [
subcomponent: selectTime, subcomponent: selectTime,
}, },
{ {
prop: 'customerName', prop: 'customerId',
label: '客户', label: '客户',
showOverflowtooltip: true, showOverflowtooltip: true,
// subcomponent: selectMember, // subcomponent: selectMember,

2925
yarn.lock

File diff suppressed because it is too large Load Diff