增加机具成套设备新增 删除 编辑功能
This commit is contained in:
parent
53361c7f01
commit
6183ae3eae
|
|
@ -0,0 +1,22 @@
|
||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 新增 成套设备
|
||||||
|
export const addCompleteSetToolsApi = (data) => {
|
||||||
|
return request.post('/material/maWhole/addOrUpdate', data)
|
||||||
|
}
|
||||||
|
// 查询 成套设备列表
|
||||||
|
export const getCompleteSetToolsApi = (data) => {
|
||||||
|
return request.get('/material/maWhole/selectList', {
|
||||||
|
params: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 删除 成套设备单条数据
|
||||||
|
export const delCompleteSetToolsApi = (data) => {
|
||||||
|
return request.post('/material/maWhole/deleteById', data)
|
||||||
|
}
|
||||||
|
// 查询编辑 成套设备单
|
||||||
|
export const queryCompleteSetToolsApi = (data) => {
|
||||||
|
return request.get('/material/maWhole/selectListById', {
|
||||||
|
params: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
@ -42,7 +42,7 @@
|
||||||
:options="item.f_selList"
|
:options="item.f_selList"
|
||||||
:props="item.optionProps"
|
:props="item.optionProps"
|
||||||
:show-all-levels="false"
|
:show-all-levels="false"
|
||||||
@change="casCadeChange"
|
@change="casCadeChange(item.f_model, $event)"
|
||||||
clearable
|
clearable
|
||||||
filterable
|
filterable
|
||||||
style="width: 240px"
|
style="width: 240px"
|
||||||
|
|
@ -50,6 +50,7 @@
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-if="item.f_type === 'date'"
|
v-if="item.f_type === 'date'"
|
||||||
v-model="queryParams[item.f_model]"
|
v-model="queryParams[item.f_model]"
|
||||||
|
@change="timeChange(item.timeList, $event)"
|
||||||
style="width: 240px"
|
style="width: 240px"
|
||||||
value-format="yyyy-MM-dd"
|
value-format="yyyy-MM-dd"
|
||||||
type="daterange"
|
type="daterange"
|
||||||
|
|
@ -123,8 +124,13 @@
|
||||||
this.$emit('queryList', this.queryParams, 'reset')
|
this.$emit('queryList', this.queryParams, 'reset')
|
||||||
},
|
},
|
||||||
/* 级联选择框的change事件 */
|
/* 级联选择框的change事件 */
|
||||||
casCadeChange(val) {
|
casCadeChange(name, val) {
|
||||||
this.queryParams.type = val[val.length - 1]
|
this.queryParams[name] = val[val.length - 1]
|
||||||
|
},
|
||||||
|
// 时间选择器change事件
|
||||||
|
timeChange(list, val) {
|
||||||
|
this.queryParams[list[0]] = val[0]
|
||||||
|
this.queryParams[list[1]] = val[1]
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -151,7 +151,7 @@ export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
total: 0,
|
total: 0,
|
||||||
tableList: [{ demo: 123 }],
|
tableList: [],
|
||||||
/* 分页参数 */
|
/* 分页参数 */
|
||||||
pageParams: {
|
pageParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
|
|
@ -198,13 +198,19 @@ export default {
|
||||||
/* 获取列表信息 */
|
/* 获取列表信息 */
|
||||||
async getList() {
|
async getList() {
|
||||||
this.pageParams = Object.assign(this.pageParams, this.sendParams)
|
this.pageParams = Object.assign(this.pageParams, this.sendParams)
|
||||||
|
this.$delete(this.pageParams, 'limit')
|
||||||
|
this.$delete(this.pageParams, 'page')
|
||||||
this.loading = true
|
this.loading = true
|
||||||
const res = await this.sendApi(this.pageParams)
|
const res = await this.sendApi(this.pageParams)
|
||||||
this.loading = false
|
this.loading = false
|
||||||
|
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
this.tableList = res.rows || res.data.rows
|
if (res.data) {
|
||||||
this.total = res.total || res.data.total
|
this.tableList = res.data.rows
|
||||||
|
this.total = res.data.total
|
||||||
|
} else {
|
||||||
|
this.tableList = res.rows
|
||||||
|
this.total = res.total
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -142,7 +142,6 @@
|
||||||
<el-table-column label="操作" align="center" width="140">
|
<el-table-column label="操作" align="center" width="140">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-edit"
|
icon="el-icon-edit"
|
||||||
@click="handleUpdate(scope.row)"
|
@click="handleUpdate(scope.row)"
|
||||||
|
|
@ -150,8 +149,8 @@
|
||||||
>编辑</el-button
|
>编辑</el-button
|
||||||
>
|
>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
|
||||||
type="text"
|
type="text"
|
||||||
|
style="color: #f56c6c"
|
||||||
icon="el-icon-delete"
|
icon="el-icon-delete"
|
||||||
@click="handleDelete(scope.row)"
|
@click="handleDelete(scope.row)"
|
||||||
v-hasPermi="['base:comeAndGo:del']"
|
v-hasPermi="['base:comeAndGo:del']"
|
||||||
|
|
|
||||||
|
|
@ -105,7 +105,6 @@
|
||||||
<el-table-column label="操作" align="center" width="200">
|
<el-table-column label="操作" align="center" width="200">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-edit"
|
icon="el-icon-edit"
|
||||||
@click="handleUpdate(scope.row)"
|
@click="handleUpdate(scope.row)"
|
||||||
|
|
@ -113,9 +112,9 @@
|
||||||
>修改</el-button
|
>修改</el-button
|
||||||
>
|
>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-delete"
|
icon="el-icon-delete"
|
||||||
|
style="color: #f56c6c"
|
||||||
@click="handleDelete(scope.row)"
|
@click="handleDelete(scope.row)"
|
||||||
v-hasPermi="['base:unit:del']"
|
v-hasPermi="['base:unit:del']"
|
||||||
>删除</el-button
|
>删除</el-button
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,12 @@ export const config = {
|
||||||
{ f_label: '关键字', f_model: 'keyword', f_type: 'ipt' },
|
{ f_label: '关键字', f_model: 'keyword', f_type: 'ipt' },
|
||||||
{ f_label: '单位名称', f_model: 'backUnit', f_type: 'sel', f_selList: [] },
|
{ f_label: '单位名称', f_model: 'backUnit', f_type: 'sel', f_selList: [] },
|
||||||
{ f_label: '工程名称', f_model: 'backPro', f_type: 'sel', f_selList: [] },
|
{ f_label: '工程名称', f_model: 'backPro', f_type: 'sel', f_selList: [] },
|
||||||
{ f_label: '工机具类型', f_model: 'type', f_type: 'selCas', f_selList: [], optionProps: { value: 'id', } },
|
{
|
||||||
|
f_label: '工机具类型', f_model: 'type', f_type: 'selCas', f_selList: [], optionProps: {
|
||||||
|
multiple: false,
|
||||||
|
value: 'id',
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
f_label: '报废来源', f_model: 'scrapSource', f_type: 'sel', f_selList: [
|
f_label: '报废来源', f_model: 'scrapSource', f_type: 'sel', f_selList: [
|
||||||
{ label: '退料', value: 1 },
|
{ label: '退料', value: 1 },
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<PageHeader :pageContent="pageContent" @goBack="goBack" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import PageHeader from '@/components/pageHeader'
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
PageHeader,
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
goBack() {
|
||||||
|
this.$emit('openHomePage')
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
@ -0,0 +1,113 @@
|
||||||
|
|
||||||
|
import {
|
||||||
|
getUnitInfoSelectApi,
|
||||||
|
listPartTypeApi,
|
||||||
|
} from '@/api/repairTest/repair'
|
||||||
|
import { getProjectList } from '@/api/claimAndRefund/receive'
|
||||||
|
|
||||||
|
import { getTypeList } from '@/api/store/warehousing'
|
||||||
|
|
||||||
|
let unitList = []
|
||||||
|
let proList = []
|
||||||
|
let typeList = []
|
||||||
|
export const config = {
|
||||||
|
handleColShow: true, // 是否显示操作列
|
||||||
|
pageShow: true, // 是否显示分页组件
|
||||||
|
isSelShow: false,// 表格是否需要复选框
|
||||||
|
isFormShow: true, // 是否显示表单查询组件
|
||||||
|
handleWidth: '', // 操作列宽度
|
||||||
|
formLabel: [
|
||||||
|
{ f_label: '成套设备名称', f_model: 'keyword', f_type: 'ipt' },
|
||||||
|
{ f_label: '主体设备', f_model: 'backUnit', f_type: 'sel', f_selList: [] },
|
||||||
|
{ f_label: '创建日期', f_model: 'backPro', f_type: 'date' },
|
||||||
|
],
|
||||||
|
columnsList: [
|
||||||
|
// { t_width: '55px', t_props: '', t_label: '序号' },
|
||||||
|
{ t_width: '', t_props: 'scrapNum', t_label: '成套设备名称', },
|
||||||
|
{ t_width: '', t_props: '', t_label: '主体设备', t_slot: 'source', },
|
||||||
|
{ t_width: '', t_props: 'repairNum', t_label: '配套设备种类数量', t_slot: 'code', },
|
||||||
|
{ t_width: '', t_props: 'unitName', t_label: '创建人', },
|
||||||
|
{ t_width: '', t_props: 'projectName', t_label: '创建日期', },
|
||||||
|
],
|
||||||
|
handleBtn: [
|
||||||
|
{ btn_title: '查看', id: 1 },
|
||||||
|
{ btn_title: '审核', id: 2 },
|
||||||
|
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
export const dialogConfig = {
|
||||||
|
outerWidth: '70%',
|
||||||
|
outerTitle: '',
|
||||||
|
outerVisible: false,
|
||||||
|
innerWidth: '50%',
|
||||||
|
innerTitle: '',
|
||||||
|
innerVisible: false,
|
||||||
|
handleColShow: false, // 是否显示操作列
|
||||||
|
pageShow: true, // 是否显示分页组件
|
||||||
|
isSelShow: false,// 表格是否需要复选框
|
||||||
|
isFormShow: true, // 是否显示表单查询组件
|
||||||
|
formLabel: [
|
||||||
|
{ f_label: '类型名称', f_model: 'keywords', f_type: 'sel', f_selList: [], selLabel: 'typeName', selValue: 'typeId' },
|
||||||
|
],
|
||||||
|
|
||||||
|
columnsList: [
|
||||||
|
// { t_width: '55px', t_props: '', t_label: '序号' },
|
||||||
|
{ t_width: '', t_props: 'machineTypeName', t_label: '设备类型' },
|
||||||
|
{ t_width: '', t_props: 'specificationType', t_label: '规格型号' },
|
||||||
|
{ t_width: '', t_props: 'maCode', t_label: '设备编码' },
|
||||||
|
{ t_width: '', t_props: 'scrapNum', t_label: '设备数量' },
|
||||||
|
{ t_width: '', t_props: 'status', t_label: '审批状态', t_slot: 't_type' },
|
||||||
|
{ t_width: '', t_props: 'auditRemark', t_label: '报废原因' },
|
||||||
|
{ t_width: '', t_props: '', t_label: '损坏原因', t_slot: 't_damage' },
|
||||||
|
{ t_width: '', t_props: '', t_label: '报废图片', t_slot: 't_img' },
|
||||||
|
{ t_width: '', t_props: 'remark', t_label: '备注' },
|
||||||
|
],
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export const getSelList = () => {
|
||||||
|
new Promise(async (resolve) => {
|
||||||
|
const { data: unitRes } = await getUnitInfoSelectApi()
|
||||||
|
unitList = unitRes.map((e) => {
|
||||||
|
e.value = e.unitId
|
||||||
|
e.label = e.unitName
|
||||||
|
return e
|
||||||
|
})
|
||||||
|
const { data: proRes } = await getProjectList()
|
||||||
|
proList = proRes.map((e) => {
|
||||||
|
e.value = e.projectId
|
||||||
|
e.label = e.projectName
|
||||||
|
return e
|
||||||
|
})
|
||||||
|
const { data: typeRes } = await listPartTypeApi()
|
||||||
|
typeList = typeRes
|
||||||
|
resolve()
|
||||||
|
}).then(() => {
|
||||||
|
config.formLabel.map((item) => {
|
||||||
|
if (item.f_model === 'backUnit') {
|
||||||
|
item.f_selList = unitList
|
||||||
|
return item
|
||||||
|
}
|
||||||
|
if (item.f_model === 'backPro') {
|
||||||
|
item.f_selList = proList
|
||||||
|
return item
|
||||||
|
}
|
||||||
|
if (item.f_model === 'type') {
|
||||||
|
item.f_selList = typeList
|
||||||
|
return item
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export const getTypeListSel = async () => {
|
||||||
|
const { data: res } = await getTypeList({ level: '3' })
|
||||||
|
dialogConfig.formLabel[0].f_selList = res.map((e) => {
|
||||||
|
e.value = e.typeId
|
||||||
|
e.label = e.typeName
|
||||||
|
return e
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
<template>
|
||||||
|
<!-- 机具成套设备主列表 -->
|
||||||
|
<div>
|
||||||
|
<TableModel
|
||||||
|
ref="tbRef"
|
||||||
|
:config="config"
|
||||||
|
:sendApi="getForecastWasteListApi"
|
||||||
|
>
|
||||||
|
<template slot="export">
|
||||||
|
<el-row class="mb8">
|
||||||
|
<el-button
|
||||||
|
type="success"
|
||||||
|
plain
|
||||||
|
icon="el-icon-download"
|
||||||
|
size="mini"
|
||||||
|
@click="handleAddComplete()"
|
||||||
|
>新增</el-button
|
||||||
|
>
|
||||||
|
</el-row>
|
||||||
|
</template>
|
||||||
|
</TableModel>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import TableModel from '@/components/TableModel'
|
||||||
|
import { config } from './config'
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
TableModel,
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
config,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleAddComplete() {
|
||||||
|
console.log('新增!')
|
||||||
|
this.$emit('handleAddComplete')
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<!-- 调试成套设备页面 -->
|
||||||
|
<Home v-if="isShowHome" @handleAddComplete="handleAddComplete" />
|
||||||
|
<AddCompleteTools v-else @openHomePage="openHomePage" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import Home from './component/home.vue'
|
||||||
|
import AddCompleteTools from './component/addCompleteTools.vue'
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
Home,
|
||||||
|
AddCompleteTools,
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
isShowHome: true,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleAddComplete() {
|
||||||
|
this.isShowHome = false
|
||||||
|
},
|
||||||
|
openHomePage() {
|
||||||
|
this.isShowHome = true
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
@ -0,0 +1,308 @@
|
||||||
|
<template>
|
||||||
|
<!-- 机具成套新增页面 -->
|
||||||
|
<div>
|
||||||
|
<PageHeader :pageContent="pageContent" @goBack="goBack" />
|
||||||
|
|
||||||
|
<el-form
|
||||||
|
ref="addFormRef"
|
||||||
|
:model="addCompleteForm"
|
||||||
|
:rules="addCompleteRules"
|
||||||
|
inline
|
||||||
|
label-width="120px"
|
||||||
|
>
|
||||||
|
<el-form-item label="成套名称" prop="completeSetName">
|
||||||
|
<el-input
|
||||||
|
placeholder="请输入成套名称"
|
||||||
|
:disabled="isEdit"
|
||||||
|
v-model="addCompleteForm.completeSetName"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="主体设备">
|
||||||
|
<el-cascader
|
||||||
|
ref="mainDeviceRef"
|
||||||
|
placeholder="请选择主体设备"
|
||||||
|
:options="deviceTypeTreeNew"
|
||||||
|
:props="deviceTypeTreeProps"
|
||||||
|
v-model="addCompleteForm.mainDevice"
|
||||||
|
@change="selMainDevice"
|
||||||
|
:show-all-levels="false"
|
||||||
|
filterable
|
||||||
|
clearable
|
||||||
|
:disabled="mainDeviceDisabled"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="配套设备">
|
||||||
|
<el-cascader
|
||||||
|
ref="assortDeviceRef"
|
||||||
|
placeholder="请选择配套设备"
|
||||||
|
:options="deviceTypeTreeNew"
|
||||||
|
:props="deviceTypeTreeProps"
|
||||||
|
v-model="addCompleteForm.assortDevice"
|
||||||
|
@change="selAssortDevice"
|
||||||
|
:show-all-levels="false"
|
||||||
|
filterable
|
||||||
|
clearable
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<el-row class="mb8">
|
||||||
|
<el-button type="primary" size="mini" @click="submitComplete"
|
||||||
|
>保 存</el-button
|
||||||
|
>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-table :data="tempList" border>
|
||||||
|
<el-table-column align="center" label="序号" type="index" />
|
||||||
|
<el-table-column
|
||||||
|
prop="deviceType"
|
||||||
|
align="center"
|
||||||
|
label="设备型号"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="deviceAscription"
|
||||||
|
align="center"
|
||||||
|
label="设备所属"
|
||||||
|
/>
|
||||||
|
<el-table-column align="center" label="数量">
|
||||||
|
<template slot-scope="{ row }">
|
||||||
|
<el-input
|
||||||
|
v-model="row.deviceNum"
|
||||||
|
style="width: 180px"
|
||||||
|
placeholder="请输入数量"
|
||||||
|
@change="deviceNumChange"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="数量">
|
||||||
|
<template slot-scope="{ row }">
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="danger"
|
||||||
|
@click="handleDelete(row)"
|
||||||
|
>删 除</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import PageHeader from '@/components/pageHeader'
|
||||||
|
import { getDeviceTypeTree } from '@/api/claimAndRefund/receive'
|
||||||
|
import {
|
||||||
|
addCompleteSetToolsApi,
|
||||||
|
queryCompleteSetToolsApi,
|
||||||
|
} from '@/api/store/completeTools.js'
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
PageHeader,
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
editInfo: {
|
||||||
|
type: Object,
|
||||||
|
default: () => null,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
pageContent: '成套设备新增',
|
||||||
|
addCompleteForm: {
|
||||||
|
completeSetName: '',
|
||||||
|
mainDevice: '',
|
||||||
|
assortDevice: '',
|
||||||
|
},
|
||||||
|
addCompleteRules: {
|
||||||
|
completeSetName: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
trigger: 'blur',
|
||||||
|
message: '请输入成套名称',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
deviceTypeTreeProps: {
|
||||||
|
multiple: false,
|
||||||
|
value: 'id',
|
||||||
|
},
|
||||||
|
deviceTypeTreeNew: [], // 设备选择数据源
|
||||||
|
tempList: [],
|
||||||
|
mainDeviceDisabled: false,
|
||||||
|
saveParams: {
|
||||||
|
wholeTypeName: '', // 成套名称
|
||||||
|
createBy: sessionStorage.getItem('userId'), // 创建人
|
||||||
|
parentId: '', // 主体设备ID
|
||||||
|
companyId: 101,
|
||||||
|
deviceInfo: [],
|
||||||
|
},
|
||||||
|
isEdit: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async created() {
|
||||||
|
this.getDeviceTypeTree()
|
||||||
|
|
||||||
|
if (this.editInfo) {
|
||||||
|
this.pageContent = '成套设备编辑'
|
||||||
|
this.addCompleteForm.completeSetName = this.editInfo.wholeTypeName
|
||||||
|
this.addCompleteForm.mainDevice = this.editInfo.deviceTypeId
|
||||||
|
this.saveParams.id = this.editInfo.id
|
||||||
|
this.mainDeviceDisabled = true
|
||||||
|
this.isEdit = true
|
||||||
|
const queryParams = {
|
||||||
|
id: this.editInfo.id,
|
||||||
|
wholeTypeName: this.editInfo.wholeTypeName,
|
||||||
|
}
|
||||||
|
const { data: res } = await queryCompleteSetToolsApi(queryParams)
|
||||||
|
this.tempList = res.rows
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
//主体设备选择
|
||||||
|
selMainDevice(val) {
|
||||||
|
const checkNode = this.$refs['mainDeviceRef'].getCheckedNodes()
|
||||||
|
|
||||||
|
if (checkNode.length < 1) return
|
||||||
|
|
||||||
|
const mainDeviceObj = {
|
||||||
|
deviceType: checkNode[0].label, // 设备名称
|
||||||
|
deviceTypeId: val[val.length - 1], // 设备Id
|
||||||
|
deviceNum: '', // 数量
|
||||||
|
deviceAscription: '主体设备', // 所属类型
|
||||||
|
ascriptionType: 1, // 所属类型 1 主体设备 2 配套设备
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.tempList.length === 0) {
|
||||||
|
this.tempList.unshift(mainDeviceObj)
|
||||||
|
} else {
|
||||||
|
// 判断选择的配套设备是否和主体设备重复
|
||||||
|
const isRepeat = this.tempList.some(
|
||||||
|
(e) => e.deviceTypeId === mainDeviceObj.deviceTypeId,
|
||||||
|
)
|
||||||
|
if (isRepeat) {
|
||||||
|
this.$message.error(
|
||||||
|
'该设备已选择作为配套设备,不可作为主体设备!',
|
||||||
|
)
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
this.tempList.unshift(mainDeviceObj)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.mainDeviceDisabled = true
|
||||||
|
},
|
||||||
|
// 配套设备选择
|
||||||
|
selAssortDevice(val) {
|
||||||
|
const checkNode = this.$refs['assortDeviceRef'].getCheckedNodes()
|
||||||
|
|
||||||
|
if (checkNode.length < 1) return
|
||||||
|
|
||||||
|
const assortDeviceObj = {
|
||||||
|
deviceType: checkNode[0].label, // 设备名称
|
||||||
|
deviceTypeId: val[val.length - 1], // 设备Id
|
||||||
|
deviceNum: '', // 数量
|
||||||
|
deviceAscription: '配套设备', // 所属类型
|
||||||
|
ascriptionType: 2, // 所属类型 1 主体设备 2 配套设备
|
||||||
|
}
|
||||||
|
|
||||||
|
// 先判断当前所选的配套设备是否已选择为主体设备
|
||||||
|
if (
|
||||||
|
this.tempList.length > 0 &&
|
||||||
|
this.tempList[0].deviceTypeId === assortDeviceObj.deviceTypeId
|
||||||
|
) {
|
||||||
|
this.$message.error(
|
||||||
|
'所选设备已作为主体设备,不可再作为配套设备!',
|
||||||
|
)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 再判断当前设备是否重复添加
|
||||||
|
const isRepeat = this.tempList.some(
|
||||||
|
(e) => e.deviceTypeId === assortDeviceObj.deviceTypeId,
|
||||||
|
)
|
||||||
|
|
||||||
|
if (isRepeat) {
|
||||||
|
this.$message.error('该设备已添加,不可重复添加!')
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
this.tempList.push(assortDeviceObj)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 删除按钮
|
||||||
|
handleDelete(row) {
|
||||||
|
this.tempList = this.tempList.filter(
|
||||||
|
(e) => e.deviceTypeId !== row.deviceTypeId,
|
||||||
|
)
|
||||||
|
// 如果当前删除的设备为主体设备 解开表单禁用状态
|
||||||
|
if (row.ascriptionType === 1) {
|
||||||
|
this.mainDeviceDisabled = false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 数量输入框校验
|
||||||
|
deviceNumChange(val) {
|
||||||
|
let reg = /^[1-9]\d*$/
|
||||||
|
if (!reg.test(val)) {
|
||||||
|
this.$message.error('请输入大于0的正整数!')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 保存按钮
|
||||||
|
submitComplete() {
|
||||||
|
this.$refs.addFormRef.validate(async (valid) => {
|
||||||
|
if (valid) {
|
||||||
|
const isMainDevice = this.tempList.some(
|
||||||
|
(e) => e.ascriptionType === 1,
|
||||||
|
)
|
||||||
|
|
||||||
|
if (!isMainDevice) {
|
||||||
|
this.$message.error('请添加主体设备!')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
const isAssortDevice = this.tempList.some(
|
||||||
|
(e) => e.ascriptionType === 2,
|
||||||
|
)
|
||||||
|
|
||||||
|
if (!isAssortDevice) {
|
||||||
|
this.$message.error('请添加配套设备!')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.tempList.forEach((e) => {
|
||||||
|
if (!parseInt(e.deviceNum)) {
|
||||||
|
this.$message.error('请输入数量!')
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
e.deviceNum = parseInt(e.deviceNum)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
this.saveParams.parentId = this.tempList[0].deviceTypeId
|
||||||
|
this.saveParams.wholeTypeName =
|
||||||
|
this.addCompleteForm.completeSetName
|
||||||
|
|
||||||
|
this.saveParams.deviceInfo = this.tempList
|
||||||
|
const res = await addCompleteSetToolsApi(this.saveParams)
|
||||||
|
|
||||||
|
if (res.code == 200) {
|
||||||
|
this.$message.success('新增成功!')
|
||||||
|
this.$emit('openHomePage')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取 设备树结构数据
|
||||||
|
async getDeviceTypeTree() {
|
||||||
|
const params = {
|
||||||
|
level: 4,
|
||||||
|
}
|
||||||
|
const res = await getDeviceTypeTree(params)
|
||||||
|
this.deviceTypeTreeNew = res.data.filter((e) => e.companyId == 101)
|
||||||
|
},
|
||||||
|
goBack() {
|
||||||
|
this.$emit('openHomePage')
|
||||||
|
this.tempList = []
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
|
||||||
|
import { getDeviceTypeTree } from '@/api/claimAndRefund/receive'
|
||||||
|
import { start } from 'nprogress'
|
||||||
|
|
||||||
|
export const config = {
|
||||||
|
handleColShow: true, // 是否显示操作列
|
||||||
|
pageShow: true, // 是否显示分页组件
|
||||||
|
isSelShow: false,// 表格是否需要复选框
|
||||||
|
isFormShow: true, // 是否显示表单查询组件
|
||||||
|
handleWidth: '', // 操作列宽度
|
||||||
|
formLabel: [
|
||||||
|
{ f_label: '成套设备名称', f_model: 'wholeTypeName', f_type: 'ipt' },
|
||||||
|
{ f_label: '主体设备', f_model: 'parentId', f_type: 'selCas', f_selList: [], optionProps: { value: 'id', } },
|
||||||
|
{ f_label: '创建日期', f_model: 'time', f_type: 'date', timeList: ['startTime', 'endTime'] },
|
||||||
|
],
|
||||||
|
columnsList: [
|
||||||
|
{ t_width: '', t_props: 'wholeTypeName', t_label: '成套设备名称', },
|
||||||
|
{ t_width: '', t_props: 'typeModelName', t_label: '主体设备', },
|
||||||
|
{ t_width: '', t_props: 'totalNum', t_label: '配套设备种类数量' },
|
||||||
|
{ t_width: '', t_props: 'nickName', t_label: '创建人', },
|
||||||
|
{ t_width: '', t_props: 'createTime', t_label: '创建日期', },
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
export const getDeviceTypeTreeFun = async () => {
|
||||||
|
const { data: res } = await getDeviceTypeTree({ level: '4' })
|
||||||
|
config.formLabel[1].f_selList = res.filter((e) => e.companyId == 101)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,109 @@
|
||||||
|
<template>
|
||||||
|
<!-- 机具成套设备主列表 -->
|
||||||
|
<div>
|
||||||
|
<TableModel
|
||||||
|
ref="tbRef"
|
||||||
|
:config="config"
|
||||||
|
:sendApi="getCompleteSetToolsApi"
|
||||||
|
:sendParams="sendParams"
|
||||||
|
>
|
||||||
|
<template slot="export">
|
||||||
|
<el-row class="mb8">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
size="mini"
|
||||||
|
@click="handleAddComplete()"
|
||||||
|
>新 增</el-button
|
||||||
|
>
|
||||||
|
</el-row>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 列表操作栏 -->
|
||||||
|
<template slot="handle" slot-scope="{ data }">
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-edit"
|
||||||
|
@click="handleEdit(data)"
|
||||||
|
>编辑</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
style="color: #f56c6c"
|
||||||
|
@click="handleDelete(data)"
|
||||||
|
v-hasPermi="['forecast:waste:auditing']"
|
||||||
|
>删除</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</TableModel>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import TableModel from '@/components/TableModel'
|
||||||
|
import {
|
||||||
|
getCompleteSetToolsApi,
|
||||||
|
delCompleteSetToolsApi,
|
||||||
|
} from '@/api/store/completeTools.js'
|
||||||
|
import { config, getDeviceTypeTreeFun } from './config'
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
TableModel,
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
config,
|
||||||
|
getCompleteSetToolsApi,
|
||||||
|
sendParams: {
|
||||||
|
companyId: 101,
|
||||||
|
},
|
||||||
|
getDeviceTypeTreeFun,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getDeviceTypeTreeFun()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 新增
|
||||||
|
handleAddComplete() {
|
||||||
|
console.log('新增!')
|
||||||
|
this.$emit('handleAddComplete')
|
||||||
|
},
|
||||||
|
// 编辑
|
||||||
|
handleEdit(data) {
|
||||||
|
console.log(data, '编辑')
|
||||||
|
this.$emit('handleAddComplete', data)
|
||||||
|
},
|
||||||
|
// 删除
|
||||||
|
handleDelete(data) {
|
||||||
|
this.$confirm('是否确定删除?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning',
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
delCompleteSetToolsApi({
|
||||||
|
id: data.id,
|
||||||
|
wholeTypeName: data.wholeTypeName,
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
console.log(res, '删除结果---')
|
||||||
|
this.$message({
|
||||||
|
type: 'success',
|
||||||
|
message: '删除成功!',
|
||||||
|
})
|
||||||
|
|
||||||
|
this.$refs.tbRef.getList()
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
this.$message({
|
||||||
|
type: 'error',
|
||||||
|
message: '删除失败!',
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch(() => {})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<!-- 机具成套设备页面 -->
|
||||||
|
<Home v-if="isShowHome" @handleAddComplete="handleAddComplete" />
|
||||||
|
<AddCompleteTools
|
||||||
|
v-else
|
||||||
|
:editInfo="editInfo"
|
||||||
|
@openHomePage="openHomePage"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import Home from './component/home.vue'
|
||||||
|
import AddCompleteTools from './component/addCompleteTools.vue'
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
Home,
|
||||||
|
AddCompleteTools,
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
isShowHome: true,
|
||||||
|
editInfo: {},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleAddComplete(data) {
|
||||||
|
this.editInfo = data
|
||||||
|
this.isShowHome = false
|
||||||
|
},
|
||||||
|
openHomePage() {
|
||||||
|
this.editInfo = null
|
||||||
|
this.isShowHome = true
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
@ -43,11 +43,11 @@ module.exports = {
|
||||||
// target: `https://test-cc.zhgkxt.com`,//线上环境-南网
|
// target: `https://test-cc.zhgkxt.com`,//线上环境-南网
|
||||||
// target: `https://z.csgmall.com.cn`,
|
// target: `https://z.csgmall.com.cn`,
|
||||||
|
|
||||||
// target: `http://10.40.92.60:28080`, //超
|
target: `http://192.168.2.122:38080`, //超
|
||||||
// target: `http://10.40.92.81:28080`, //韩/
|
// target: `http://10.40.92.81:28080`, //韩/
|
||||||
// target: `http://10.40.92.74:8080`,//旭/
|
// target: `http://10.40.92.74:8080`,//旭/
|
||||||
// target: `http://10.40.92.140:28080`, //帅
|
// target: `http://10.40.92.140:28080`, //帅
|
||||||
target: `http://10.40.92.253:28080`, //福
|
// target: `http://192.168.2.209:28080`, //福
|
||||||
|
|
||||||
//******** 注意事项 ********* */
|
//******** 注意事项 ********* */
|
||||||
//1.全局替换qrUrl二维码扫码提供的网址-发布服务器的地址target;
|
//1.全局替换qrUrl二维码扫码提供的网址-发布服务器的地址target;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue