增加机具成套设备新增 删除 编辑功能
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"
|
||||
:props="item.optionProps"
|
||||
:show-all-levels="false"
|
||||
@change="casCadeChange"
|
||||
@change="casCadeChange(item.f_model, $event)"
|
||||
clearable
|
||||
filterable
|
||||
style="width: 240px"
|
||||
|
|
@ -50,6 +50,7 @@
|
|||
<el-date-picker
|
||||
v-if="item.f_type === 'date'"
|
||||
v-model="queryParams[item.f_model]"
|
||||
@change="timeChange(item.timeList, $event)"
|
||||
style="width: 240px"
|
||||
value-format="yyyy-MM-dd"
|
||||
type="daterange"
|
||||
|
|
@ -79,55 +80,60 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
/* 查询条件 */
|
||||
formLabel: {
|
||||
type: Array,
|
||||
default: () => {
|
||||
return []
|
||||
},
|
||||
},
|
||||
routerParams: {
|
||||
type: String,
|
||||
default: () => {
|
||||
return null
|
||||
},
|
||||
export default {
|
||||
props: {
|
||||
/* 查询条件 */
|
||||
formLabel: {
|
||||
type: Array,
|
||||
default: () => {
|
||||
return []
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
queryParams: {},
|
||||
}
|
||||
},
|
||||
created() {
|
||||
/* 生产查询参数 */
|
||||
this.formLabel.map((e) => {
|
||||
this.$set(this.queryParams, e.f_model, '')
|
||||
})
|
||||
},
|
||||
mounted() {
|
||||
this.queryParams.keyword = this.routerParams
|
||||
if (this.queryParams.keyword) {
|
||||
this.$emit('queryList', this.queryParams)
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/* 查询按钮 */
|
||||
handleQuery() {
|
||||
this.$emit('queryList', this.queryParams)
|
||||
},
|
||||
/* 重置按钮 */
|
||||
resetQuery() {
|
||||
this.$refs.queryForm.resetFields()
|
||||
this.$emit('queryList', this.queryParams, 'reset')
|
||||
},
|
||||
/* 级联选择框的change事件 */
|
||||
casCadeChange(val) {
|
||||
this.queryParams.type = val[val.length - 1]
|
||||
routerParams: {
|
||||
type: String,
|
||||
default: () => {
|
||||
return null
|
||||
},
|
||||
},
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
queryParams: {},
|
||||
}
|
||||
},
|
||||
created() {
|
||||
/* 生产查询参数 */
|
||||
this.formLabel.map((e) => {
|
||||
this.$set(this.queryParams, e.f_model, '')
|
||||
})
|
||||
},
|
||||
mounted() {
|
||||
this.queryParams.keyword = this.routerParams
|
||||
if (this.queryParams.keyword) {
|
||||
this.$emit('queryList', this.queryParams)
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/* 查询按钮 */
|
||||
handleQuery() {
|
||||
this.$emit('queryList', this.queryParams)
|
||||
},
|
||||
/* 重置按钮 */
|
||||
resetQuery() {
|
||||
this.$refs.queryForm.resetFields()
|
||||
this.$emit('queryList', this.queryParams, 'reset')
|
||||
},
|
||||
/* 级联选择框的change事件 */
|
||||
casCadeChange(name, val) {
|
||||
this.queryParams[name] = val[val.length - 1]
|
||||
},
|
||||
// 时间选择器change事件
|
||||
timeChange(list, val) {
|
||||
this.queryParams[list[0]] = val[0]
|
||||
this.queryParams[list[1]] = val[1]
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style></style>
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
total: 0,
|
||||
tableList: [{ demo: 123 }],
|
||||
tableList: [],
|
||||
/* 分页参数 */
|
||||
pageParams: {
|
||||
pageNum: 1,
|
||||
|
|
@ -198,13 +198,19 @@ export default {
|
|||
/* 获取列表信息 */
|
||||
async getList() {
|
||||
this.pageParams = Object.assign(this.pageParams, this.sendParams)
|
||||
this.$delete(this.pageParams, 'limit')
|
||||
this.$delete(this.pageParams, 'page')
|
||||
this.loading = true
|
||||
const res = await this.sendApi(this.pageParams)
|
||||
this.loading = false
|
||||
|
||||
if (res.code == 200) {
|
||||
this.tableList = res.rows || res.data.rows
|
||||
this.total = res.total || res.data.total
|
||||
if (res.data) {
|
||||
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">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
|
|
@ -150,8 +149,8 @@
|
|||
>编辑</el-button
|
||||
>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
style="color: #f56c6c"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['base:comeAndGo:del']"
|
||||
|
|
|
|||
|
|
@ -105,7 +105,6 @@
|
|||
<el-table-column label="操作" align="center" width="200">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
|
|
@ -113,9 +112,9 @@
|
|||
>修改</el-button
|
||||
>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
style="color: #f56c6c"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['base:unit:del']"
|
||||
>删除</el-button
|
||||
|
|
|
|||
|
|
@ -20,7 +20,12 @@ export const config = {
|
|||
{ 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: '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: [
|
||||
{ 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://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.74:8080`,//旭/
|
||||
// target: `http://10.40.92.140:28080`, //帅
|
||||
target: `http://10.40.92.253:28080`, //福
|
||||
// target: `http://192.168.2.209:28080`, //福
|
||||
|
||||
//******** 注意事项 ********* */
|
||||
//1.全局替换qrUrl二维码扫码提供的网址-发布服务器的地址target;
|
||||
|
|
|
|||
Loading…
Reference in New Issue