装备列表功能完善接口对接
This commit is contained in:
parent
f9fa2c5c71
commit
496e833267
|
|
@ -1,10 +1,10 @@
|
|||
# 页面标题
|
||||
VUE_APP_TITLE = 博诺思管理系统
|
||||
VUE_APP_TITLE = 安徽机械化施工装备平台
|
||||
|
||||
# 开发环境配置
|
||||
ENV = 'development'
|
||||
|
||||
# 博诺思管理系统/开发环境
|
||||
# 安徽机械化施工装备平台/开发环境
|
||||
VUE_APP_BASE_API = '/dev-api'
|
||||
|
||||
# 路由懒加载
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
# 页面标题
|
||||
VUE_APP_TITLE = 博诺思管理系统
|
||||
VUE_APP_TITLE = 安徽机械化施工装备平台
|
||||
|
||||
# 生产环境配置
|
||||
ENV = 'production'
|
||||
|
||||
# 博诺思管理系统/生产环境
|
||||
# 安徽机械化施工装备平台/生产环境
|
||||
VUE_APP_BASE_API = '/prod-api'
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
# 页面标题
|
||||
VUE_APP_TITLE = 博诺思管理系统
|
||||
VUE_APP_TITLE = 安徽机械化施工装备平台
|
||||
|
||||
NODE_ENV = production
|
||||
|
||||
# 测试环境配置
|
||||
ENV = 'staging'
|
||||
|
||||
# 博诺思管理系统/测试环境
|
||||
# 安徽机械化施工装备平台/测试环境
|
||||
VUE_APP_BASE_API = '/stage-api'
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "bonus",
|
||||
"version": "3.6.4",
|
||||
"description": "博诺思管理系统",
|
||||
"description": "安徽机械化施工装备平台",
|
||||
"author": "博诺思",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
|
|
|
|||
|
|
@ -33,6 +33,15 @@ export function updateDevice(data) {
|
|||
data: data,
|
||||
})
|
||||
}
|
||||
|
||||
//保存草稿
|
||||
export function insertDraft(data) {
|
||||
return request({
|
||||
url: '/material-mall/dev/insertDraft',
|
||||
method: 'post',
|
||||
data: data,
|
||||
})
|
||||
}
|
||||
|
||||
//装备装备类目树结构数据
|
||||
export function getEquipmentType(query) {
|
||||
|
|
@ -61,7 +70,14 @@ export function updateUpDown(data) {
|
|||
})
|
||||
}
|
||||
|
||||
|
||||
//上下架(批量)
|
||||
export function companyList(query) {
|
||||
return request({
|
||||
url: '/material-mall/dev/companyList',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -2,44 +2,11 @@
|
|||
<div class="app-container home">
|
||||
<el-row :gutter="20">
|
||||
<el-col :sm="24" :lg="12" style="padding-left: 20px">
|
||||
<h2>博诺思后台管理框架</h2>
|
||||
<p>
|
||||
<h2>安徽机械化施工装备平台</h2>
|
||||
<!-- <p>
|
||||
<b>当前版本:</b> <span>v{{ version }}</span>
|
||||
</p>
|
||||
</el-col>
|
||||
<el-col :sm="24" :lg="12" style="padding-left: 50px">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<h2>技术选型</h2>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
<h4>后端技术</h4>
|
||||
<ul>
|
||||
<li>SpringBoot</li>
|
||||
<li>SpringCloud</li>
|
||||
<li>Nacos</li>
|
||||
<li>Sentinel</li>
|
||||
<li>Seata</li>
|
||||
<li>Minio</li>
|
||||
<li>...</li>
|
||||
</ul>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<h4>前端技术</h4>
|
||||
<ul>
|
||||
<li>Vue</li>
|
||||
<li>Vuex</li>
|
||||
<li>Element-ui</li>
|
||||
<li>Axios</li>
|
||||
<li>Echarts</li>
|
||||
<li>Quill</li>
|
||||
<li>...</li>
|
||||
</ul>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-col>
|
||||
</p> -->
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-divider />
|
||||
<el-row :gutter="20">
|
||||
|
|
@ -60,7 +27,7 @@
|
|||
</el-card>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="12" :lg="8">
|
||||
<el-card class="update-log">
|
||||
<!-- <el-card class="update-log">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>更新日志</span>
|
||||
</div>
|
||||
|
|
@ -83,7 +50,7 @@
|
|||
</ol>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
</el-card>
|
||||
</el-card> -->
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,23 +1,22 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-row :gutter="10" class="mb8" style="display: flex;align-items: center;">
|
||||
<el-col :span="2">
|
||||
<el-button
|
||||
type="primary" size="mini"
|
||||
icon="el-icon-back" @click="backList"
|
||||
type="primary" @click="backList"
|
||||
icon="el-icon-back"
|
||||
>取消</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning" plain @click="addDev"
|
||||
icon="el-icon-download" size="mini"
|
||||
<el-col :span="2">
|
||||
<el-button v-if="!isView"
|
||||
type="warning" @click="saveTemp"
|
||||
icon="el-icon-download"
|
||||
>存草稿</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
icon="el-icon-check"
|
||||
size="mini"
|
||||
<el-col :span="2">
|
||||
<el-button v-if="!isView"
|
||||
type="success" @click="addDev"
|
||||
icon="el-icon-check"
|
||||
>上架</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
|
@ -26,119 +25,123 @@
|
|||
<span class="title-sign"></span>
|
||||
<span class="title-text">基本信息</span>
|
||||
</div>
|
||||
<el-form :model="formData" ref="formData" size="small" :inline="true" label-width="130px" style="margin-left: 40px;margin-bottom: 20px;">
|
||||
<el-form :model="formData" ref="dForm" :rules="rules" size="small" :inline="true" label-width="140px" style="margin-left: 40px;margin-bottom: 20px;width: 80%;">
|
||||
<el-row :gutter="24" class="mb8">
|
||||
<el-form-item label="装备名称:" prop="deviceName">
|
||||
<el-input
|
||||
v-model="formData.deviceName"
|
||||
placeholder="请输入装备名称"
|
||||
clearable maxlength="20"
|
||||
clearable maxlength="30"
|
||||
style="width: 1100px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
<el-row :gutter="24" class="mb8">
|
||||
<el-col :span="10">
|
||||
<el-form-item label="装备类目:" prop="typeId">
|
||||
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<el-form-item label="所属公司:" prop="companyId">
|
||||
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="24" class="mb8">
|
||||
<el-col :span="10">
|
||||
<el-form-item label="装备编号:" prop="code">
|
||||
<el-input
|
||||
v-model="formData.code"
|
||||
placeholder="请输入装备编号"
|
||||
clearable maxlength="20"
|
||||
style="width: 400px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<el-form-item label="装备品牌:" prop="brand">
|
||||
<el-input
|
||||
v-model="formData.brand"
|
||||
placeholder="请输入装备品牌"
|
||||
clearable maxlength="20"
|
||||
style="width: 400px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24" class="mb8">
|
||||
<el-col :span="10">
|
||||
<el-form-item label="出厂日期:" prop="productionDate">
|
||||
<el-date-picker
|
||||
v-model="formData.productionDate"
|
||||
placeholder="请选择出厂日期"
|
||||
value-format="yyyy-MM-dd"
|
||||
type="date" style="width: 400px;">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<el-form-item label="租赁价格(天/元):" prop="dayLeasePrice">
|
||||
<el-input
|
||||
v-model="formData.dayLeasePrice"
|
||||
placeholder="请输入租赁价格"
|
||||
clearable maxlength="20"
|
||||
style="width: 400px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24" class="mb8">
|
||||
<el-col :span="10">
|
||||
<el-form-item label="联系人:" prop="person">
|
||||
<el-input
|
||||
v-model="formData.person"
|
||||
placeholder="请输入联系人"
|
||||
clearable maxlength="20"
|
||||
style="width: 400px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<el-form-item label="联系电话:" prop="personPhone">
|
||||
<el-input
|
||||
v-model="formData.personPhone"
|
||||
placeholder="请输入联系电话"
|
||||
clearable maxlength="20"
|
||||
style="width: 400px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24" class="mb8">
|
||||
<el-col :span="10">
|
||||
<el-form-item label="装备单位:" prop="unitName">
|
||||
<el-input
|
||||
v-model="formData.unitName"
|
||||
placeholder="请输入装备单位"
|
||||
clearable maxlength="20"
|
||||
style="width: 400px;" disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<el-form-item label="整机重量(KG):" prop="deviceWeight">
|
||||
<el-input
|
||||
v-model="formData.deviceWeight"
|
||||
placeholder="请输入整机重量"
|
||||
clearable maxlength="20"
|
||||
style="width: 400px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</el-row>
|
||||
<el-form-item label="装备类目:" prop="deviceTypeList">
|
||||
<el-cascader
|
||||
v-model="formData.deviceTypeList"
|
||||
:key="propsKey"
|
||||
:show-all-levels="false"
|
||||
:options="deviceTypeTree"
|
||||
:props="partTypeTreeProps"
|
||||
filterable clearable
|
||||
collapse-tags
|
||||
style="width: 450px"
|
||||
placeholder="请选择装备类目"
|
||||
ref="deviceTypeCascader"
|
||||
popper-class="popper-select"
|
||||
@change="deviceTypeChange"
|
||||
></el-cascader>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备数量:" prop="deviceCount">
|
||||
<el-input
|
||||
@input="(v)=>(formData.deviceCount=v.replace(/[^\d.]/g,''))"
|
||||
v-model="formData.deviceCount"
|
||||
placeholder="请输入设备数量"
|
||||
clearable maxlength="20"
|
||||
style="width: 450px;" :disabled="countDisabled"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="装备单位:" prop="unitName">
|
||||
<el-input
|
||||
v-model="formData.unitName"
|
||||
placeholder="请输入装备单位"
|
||||
clearable maxlength="20"
|
||||
style="width: 450px;" disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="装备编号:" prop="code">
|
||||
<el-input
|
||||
v-model="formData.code"
|
||||
placeholder="请输入装备编号"
|
||||
clearable maxlength="30"
|
||||
style="width: 450px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="所属公司:" prop="companyId">
|
||||
<el-select
|
||||
v-model="formData.companyId"
|
||||
placeholder="请选择所属公司"
|
||||
clearable style="width: 450px">
|
||||
<el-option
|
||||
v-for="item in companyDataList"
|
||||
:key="item.companyId"
|
||||
:label="item.companyName"
|
||||
:value="item.companyId"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="装备品牌:" prop="brand">
|
||||
<el-input
|
||||
v-model="formData.brand"
|
||||
placeholder="请输入装备品牌"
|
||||
clearable maxlength="30"
|
||||
style="width: 450px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="出厂日期:" prop="productionDate">
|
||||
<el-date-picker
|
||||
v-model="formData.productionDate"
|
||||
placeholder="请选择出厂日期"
|
||||
value-format="yyyy-MM-dd"
|
||||
type="date" style="width: 450px;">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="租赁价格(天/元):" prop="dayLeasePrice">
|
||||
<el-input
|
||||
@input="(v)=>(formData.dayLeasePrice=v.replace(/[^\d.]/g,''))"
|
||||
v-model="formData.dayLeasePrice"
|
||||
placeholder="请输入租赁价格"
|
||||
clearable maxlength="20"
|
||||
style="width: 450px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="联系人:" prop="person">
|
||||
<el-input
|
||||
v-model="formData.person"
|
||||
placeholder="请输入联系人"
|
||||
clearable maxlength="20"
|
||||
style="width: 450px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="联系电话:" prop="personPhone">
|
||||
<el-input
|
||||
v-model="formData.personPhone"
|
||||
placeholder="请输入联系电话"
|
||||
clearable maxlength="20"
|
||||
style="width: 450px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="整机重量(KG):" prop="deviceWeight">
|
||||
<el-input
|
||||
@input="(v)=>(formData.deviceWeight=v.replace(/[^\d.]/g,''))"
|
||||
v-model="formData.deviceWeight"
|
||||
placeholder="请输入整机重量"
|
||||
clearable maxlength="20"
|
||||
style="width: 450px;"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 描述 -->
|
||||
<!-- <el-row :gutter="24" class="mb8" style="margin-bottom: 20px;">
|
||||
<span style="color: #606266;font-size: 14px;font-weight: 600;margin-left: 60px;">添加描述:</span>
|
||||
<span style="color: rgb(255, 59, 48);font-size: 12px;margin-left: 10px;">注:添加不少于2个关于装备性能、外观等相关的描述,如档位、标定功率、规格等</span>
|
||||
|
|
@ -183,8 +186,9 @@
|
|||
</div>
|
||||
<div style="margin-left: 20px;">
|
||||
<el-upload ref="upload" :limit="6" :headers="upload.headers"
|
||||
:action="upload.url" :show-file-list="false" accept=".png, .jpg, .jpeg, .pdf, .doc, .docx"
|
||||
:on-success="handleFileSuccess" :auto-upload="true"
|
||||
:action="upload.url" :show-file-list="false" accept=".png, .jpg, .jpeg"
|
||||
:on-success="handleFileSuccess" :auto-upload="true"
|
||||
:before-upload="beforeUpload" :on-error="uploadError"
|
||||
>
|
||||
<el-button icon="el-icon-folder-add">上传文件</el-button>
|
||||
</el-upload>
|
||||
|
|
@ -227,8 +231,9 @@
|
|||
</div>
|
||||
<div style="margin-left: 20px;">
|
||||
<el-upload ref="upload" :limit="6" :headers="upload.headers"
|
||||
:action="upload.url" :show-file-list="false" accept=".png, .jpg, .jpeg, .pdf, .doc, .docx"
|
||||
:on-success="handleFileSuccess2" :auto-upload="true"
|
||||
:action="upload.url" :show-file-list="false" accept=".png, .jpg, .jpeg"
|
||||
:on-success="handleFileSuccess2" :auto-upload="true"
|
||||
:before-upload="beforeUpload" :on-error="uploadError"
|
||||
>
|
||||
<el-button icon="el-icon-folder-add">上传文件</el-button>
|
||||
</el-upload>
|
||||
|
|
@ -276,8 +281,9 @@
|
|||
</div>
|
||||
<div style="margin-left: 20px;">
|
||||
<el-upload ref="upload" :limit="6" :headers="upload.headers"
|
||||
:action="upload.url" :show-file-list="false" accept=".png, .jpg, .jpeg, .pdf, .doc, .docx"
|
||||
:on-success="handleFileSuccess3" :auto-upload="true"
|
||||
:action="upload.url" :show-file-list="false" accept=".png, .jpg, .jpeg"
|
||||
:on-success="handleFileSuccess3" :auto-upload="true"
|
||||
:before-upload="beforeUpload" :on-error="uploadError"
|
||||
>
|
||||
<el-button icon="el-icon-folder-add">上传文件</el-button>
|
||||
</el-upload>
|
||||
|
|
@ -310,8 +316,9 @@
|
|||
</div>
|
||||
<div style="margin-left: 20px;">
|
||||
<el-upload ref="upload" :limit="6" :headers="upload.headers"
|
||||
:action="upload.url" :show-file-list="false" accept=".png, .jpg, .jpeg, .pdf, .doc, .docx"
|
||||
:on-success="handleFileSuccess4" :auto-upload="true"
|
||||
:action="upload.url" :show-file-list="false" accept=".png, .jpg, .jpeg"
|
||||
:on-success="handleFileSuccess4" :auto-upload="true"
|
||||
:before-upload="beforeUpload" :on-error="uploadError"
|
||||
>
|
||||
<el-button icon="el-icon-folder-add">上传文件</el-button>
|
||||
</el-upload>
|
||||
|
|
@ -348,21 +355,30 @@
|
|||
|
||||
<script>
|
||||
import { getToken } from "@/utils/auth";
|
||||
import { getDevDetail,addDevice,updateDevice} from "@/api/lessor/equipment";
|
||||
import { getDevDetail,addDevice,updateDevice,getEquipmentType,companyList,insertDraft} from "@/api/lessor/equipment";
|
||||
import { number } from "echarts";
|
||||
export default {
|
||||
name: "",
|
||||
// dicts: ["purchase_task_status"],
|
||||
data() {
|
||||
return {
|
||||
maId:"",
|
||||
isView: false,
|
||||
equipmentTypeList: [], //下拉
|
||||
materialModelList: [], //规格型号下拉
|
||||
supplierList: [], //厂家下拉
|
||||
fixCodeList: ["否", "是"],
|
||||
formData: {
|
||||
typeId:644
|
||||
},
|
||||
isView: false,
|
||||
//所属公司下拉
|
||||
companyDataList: [],
|
||||
// 装备树结构数据
|
||||
deviceTypeTree: [],
|
||||
// 装备树配置
|
||||
partTypeTreeProps: {
|
||||
children: "children",
|
||||
label: "name",
|
||||
multiple: false,
|
||||
value: "id",
|
||||
// multiple: true,
|
||||
},
|
||||
propsKey: 1000,
|
||||
countDisabled: false,
|
||||
formData: {},
|
||||
//描述
|
||||
describeList:[
|
||||
{label:"",describe:""},{label:"",describe:""}
|
||||
|
|
@ -371,7 +387,50 @@
|
|||
detailsFileList:[],//详情展示
|
||||
insurancePdf:[],//合格证
|
||||
examinationPdf:[],//检测证明
|
||||
|
||||
// 表单校验
|
||||
rules: {
|
||||
deviceName: [
|
||||
{ required: true, message: "上架时装备名称不能为空", trigger: "blur" }
|
||||
],
|
||||
deviceTypeList: [
|
||||
{ required: true, message: "上架时装备类目不能为空", trigger: "change" }
|
||||
],
|
||||
deviceCount: [
|
||||
{ required: true, message: "上架时设备数量不能为空", trigger: "blur" }
|
||||
],
|
||||
companyId: [
|
||||
{ required: true, message: "上架时所属公司不能为空", trigger: "change" }
|
||||
],
|
||||
code: [
|
||||
{ required: true, message: "上架时装备编号不能为空", trigger: "blur" }
|
||||
],
|
||||
brand: [
|
||||
{ required: true, message: "上架时装备品牌不能为空", trigger: "blur" }
|
||||
],
|
||||
productionDate: [
|
||||
{ required: true, message: "上架时出厂日期不能为空", trigger: "blur" }
|
||||
],
|
||||
dayLeasePrice: [
|
||||
{ required: true, message: "上架时租赁价格不能为空", trigger: "blur" }
|
||||
],
|
||||
person: [
|
||||
{ required: true, message: "上架时联系人不能为空", trigger: "blur" }
|
||||
],
|
||||
personPhone: [
|
||||
{ required: true, message: "上架时联系电话不能为空", trigger: "blur" },
|
||||
{
|
||||
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
|
||||
message: "请输入正确的手机号码",
|
||||
trigger: "blur"
|
||||
}
|
||||
],
|
||||
// unitName: [
|
||||
// { required: true, message: "装备单位不能为空", trigger: "blur" }
|
||||
// ],
|
||||
deviceWeight: [//
|
||||
{ required: true, message: "上架时整机重量不能为空", trigger: "blur" }
|
||||
],
|
||||
},
|
||||
//图片查看弹窗
|
||||
dialogImageUrl: "",
|
||||
dialogVisible: false,
|
||||
|
|
@ -384,7 +443,9 @@
|
|||
},
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
mounted() {
|
||||
this.getTypeTreeData()
|
||||
this.getCompanyList()
|
||||
const maId = this.$route.query && this.$route.query.maId;
|
||||
const isView = this.$route.query && this.$route.query.isView;
|
||||
this.maId = maId;
|
||||
|
|
@ -395,11 +456,11 @@
|
|||
this.isView = false;
|
||||
}
|
||||
if(this.maId&&this.maId!=""){
|
||||
this.getDevDetailInfo()
|
||||
}
|
||||
// this.resetForm("formData");
|
||||
// console.log(this.isView);
|
||||
// this.getSupplierList()
|
||||
setTimeout(()=>{
|
||||
this.getDevDetailInfo()
|
||||
},500)
|
||||
}
|
||||
|
||||
},
|
||||
methods: {
|
||||
// 返回列表页
|
||||
|
|
@ -407,66 +468,173 @@
|
|||
const obj = { path: "/lessor/equipment" };
|
||||
this.$tab.closeOpenPage(obj);
|
||||
},
|
||||
//获取下拉数据
|
||||
// getDeviceType() {
|
||||
// getDeviceType({ level: 4, skipPermission: 1 }).then((response) => {
|
||||
// let matModelRes = response.data;
|
||||
// this.materialModelList = matModelRes.map((item) => {
|
||||
// return {
|
||||
// label: item.typeName,
|
||||
// value: item.typeId,
|
||||
// };
|
||||
// });
|
||||
// });
|
||||
// },
|
||||
// getSupplierList() {
|
||||
// getManufacturerSelect().then((response) => {
|
||||
// let arrRes = response.rows;
|
||||
// this.supplierList = arrRes.map((item) => {
|
||||
// return {
|
||||
// label: item.supplier,
|
||||
// value: item.supplierId,
|
||||
// };
|
||||
// });
|
||||
// });
|
||||
// },
|
||||
|
||||
//获取下拉数据
|
||||
getCompanyList() {
|
||||
companyList().then((response) => {
|
||||
this.companyDataList=response.data
|
||||
});
|
||||
},
|
||||
//装备树
|
||||
async getTypeTreeData() {
|
||||
const params = {};
|
||||
const res = await getEquipmentType(params);
|
||||
console.log("treeData==========", res);
|
||||
this.deviceTypeTree = res.data;
|
||||
|
||||
},
|
||||
//装备类目-change
|
||||
deviceTypeChange(val){
|
||||
const deviceTypeList = this.$refs.deviceTypeCascader.getCheckedNodes()
|
||||
console.log(deviceTypeList)
|
||||
this.formData.unitName = deviceTypeList[0].data.unitName
|
||||
let manageType = deviceTypeList[0].data.manageType
|
||||
if(manageType=='1'){//数量
|
||||
this.formData.deviceCount=1
|
||||
this.countDisabled=false
|
||||
}else if(manageType=='0'){//编码
|
||||
this.formData.deviceCount=1
|
||||
this.countDisabled=true
|
||||
}
|
||||
console.log(this.formData)
|
||||
},
|
||||
//反显 树结构数据获取父
|
||||
getSelectId(list, id) {
|
||||
for (let i in list) {
|
||||
if (list[i].id == id) {
|
||||
//查询到就返回该数组对象的value
|
||||
return [list[i].id];
|
||||
}
|
||||
if (list[i].children) {
|
||||
let node = this.getSelectId(list[i].children, id);
|
||||
if (node !== undefined) {
|
||||
//查询到把父节把父节点加到数组前面
|
||||
node.unshift(list[i].id);
|
||||
return node;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
//获取详情
|
||||
getDevDetailInfo(){
|
||||
console.log(this.maId)
|
||||
getDevDetail(this.maId).then((response) => {
|
||||
console.log(response)
|
||||
this.formData = response.data;
|
||||
this.$set(this.formData,"companyId",Number(response.data.companyId))
|
||||
console.log(this.formData)
|
||||
this.$forceUpdate();
|
||||
this.mainFileList=response.data.mainFileList||[] //主展示
|
||||
this.detailsFileList=response.data.detailsFileList||[] //详情展示
|
||||
this.insurancePdf=response.data.insurancePdf||[] //合格证
|
||||
this.examinationPdf=response.data.examinationPdf||[] //检测证明
|
||||
this.examinationPdf=response.data.examinationPdf||[] //检测证明
|
||||
//反显 装备
|
||||
this.formData.deviceTypeList = this.getSelectId(this.deviceTypeTree, this.formData.typeId);
|
||||
console.log(this.formData.deviceTypeList)
|
||||
this.$forceUpdate();
|
||||
})
|
||||
},
|
||||
//保存草稿
|
||||
saveTemp(){
|
||||
if (this.formData.deviceTypeList&&this.formData.deviceTypeList.length > 0) {
|
||||
this.formData.typeId = this.formData.deviceTypeList[3]
|
||||
} else {
|
||||
this.formData.typeId = ""
|
||||
}
|
||||
let param = {
|
||||
...this.formData,
|
||||
mainFileList:this.mainFileList,//主展示
|
||||
detailsFileList:this.detailsFileList,//详情展示
|
||||
insurancePdf:this.insurancePdf,//合格证
|
||||
examinationPdf:this.examinationPdf,//检测证明
|
||||
}
|
||||
console.log(param)
|
||||
this.$modal.confirm('是否保存该装备草稿?').then(() => {
|
||||
// if(this.maId&&this.maId!=""){
|
||||
// updateDevice(param).then((response) => {
|
||||
// if(response.code==200){
|
||||
// this.$modal.msgSuccess("上架成功");
|
||||
// this.backList()
|
||||
// }else{
|
||||
// this.$modal.msgError(response.msg);
|
||||
// }
|
||||
// })
|
||||
// }else{
|
||||
insertDraft(param).then((response) => {
|
||||
if(response.code==200){
|
||||
this.$modal.msgSuccess("保存成功");
|
||||
this.backList()
|
||||
}else{
|
||||
this.$modal.msgError(response.msg);
|
||||
}
|
||||
})
|
||||
// }
|
||||
}).catch(() => {})
|
||||
},
|
||||
//上架
|
||||
addDev(){
|
||||
console.log(this.formData)
|
||||
let param = {
|
||||
...this.formData,
|
||||
mainFileList:this.mainFileList,//主展示
|
||||
detailsFileList:this.detailsFileList,//详情展示
|
||||
insurancePdf:this.insurancePdf,//合格证
|
||||
examinationPdf:this.examinationPdf,//检测证明
|
||||
console.log(this.formData.deviceTypeList)
|
||||
this.$refs['dForm'].validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.formData.deviceTypeList&&this.formData.deviceTypeList.length > 0) {
|
||||
this.formData.typeId = this.formData.deviceTypeList[3]
|
||||
} else {
|
||||
this.formData.typeId = ""
|
||||
}
|
||||
if(this.mainFileList.length==0||this.mainFileList.length>6){
|
||||
this.$modal.msgError("主展示图不得少于1张,不得多于6张");
|
||||
return
|
||||
}
|
||||
if(this.detailsFileList.length==0||this.detailsFileList.length>6){
|
||||
this.$modal.msgError("详情展示图不得少于1张,不得多于6张");
|
||||
return
|
||||
}
|
||||
let param = {
|
||||
...this.formData,
|
||||
mainFileList:this.mainFileList,//主展示
|
||||
detailsFileList:this.detailsFileList,//详情展示
|
||||
insurancePdf:this.insurancePdf,//合格证
|
||||
examinationPdf:this.examinationPdf,//检测证明
|
||||
}
|
||||
this.$modal.confirm('是否确认上架该装备?').then(() => {
|
||||
// if(this.maId&&this.maId!=""){
|
||||
// updateDevice(param).then((response) => {
|
||||
// if(response.code==200){
|
||||
// this.$modal.msgSuccess("上架成功");
|
||||
// this.backList()
|
||||
// }else{
|
||||
// this.$modal.msgError(response.msg);
|
||||
// }
|
||||
// })
|
||||
// }else{
|
||||
// addDevice(param).then((response) => {
|
||||
// if(response.code==200){
|
||||
// this.$modal.msgSuccess("上架成功");
|
||||
// this.backList()
|
||||
// }else{
|
||||
// this.$modal.msgError(response.msg);
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
}).catch(() => {})
|
||||
}
|
||||
})
|
||||
},
|
||||
// 文件上传前处理-上传大小
|
||||
beforeUpload(file) {
|
||||
if (file.size / 1024 / 1024 > 2) {
|
||||
this.$message.error({
|
||||
message: `上传文件大小不能超过2M!`,
|
||||
});
|
||||
return false;
|
||||
}
|
||||
if(this.maId&&this.maId!=""){
|
||||
updateDevice(param).then((response) => {
|
||||
|
||||
|
||||
})
|
||||
}else{
|
||||
addDevice(param).then((response) => {
|
||||
|
||||
|
||||
})
|
||||
}
|
||||
// addDevice
|
||||
},
|
||||
|
||||
// 文件上传失败
|
||||
uploadError() {
|
||||
this.$message.error({
|
||||
message: `上传文件失败!`,
|
||||
});
|
||||
},
|
||||
// 文件上传成功处理
|
||||
handleFileSuccess(response, file, fileList) {
|
||||
if (response.code == 200) {
|
||||
|
|
@ -537,6 +705,17 @@
|
|||
handleRemove(list,index){
|
||||
list.splice(index,1)
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//添加描述
|
||||
addDescribe(){
|
||||
this.describeList.push({label:"",describe:""})
|
||||
|
|
@ -544,12 +723,7 @@
|
|||
//删除描述
|
||||
delDescribe(index){
|
||||
this.describeList.splice(index,1)
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
|
@ -650,5 +824,13 @@
|
|||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.popper-select {
|
||||
.el-cascader-panel .el-scrollbar .el-checkbox {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.el-cascader-panel .el-scrollbar:nth-child(4) .el-checkbox {
|
||||
display: block !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item prop="deviceName">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
|
||||
<el-form-item label="装备名称:" prop="deviceName">
|
||||
<el-input
|
||||
v-model="queryParams.deviceName"
|
||||
placeholder="请输入装备名称"
|
||||
|
|
@ -10,8 +10,8 @@
|
|||
maxlength="20"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item prop="code">
|
||||
<el-input
|
||||
<el-form-item label="装备编码:" prop="code">
|
||||
<el-input
|
||||
v-model="queryParams.code"
|
||||
placeholder="请输入装备编码"
|
||||
clearable
|
||||
|
|
@ -19,7 +19,7 @@
|
|||
maxlength="20"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item prop="maStatus">
|
||||
<el-form-item label="装备状态:" prop="maStatus">
|
||||
<el-select
|
||||
v-model="queryParams.maStatus"
|
||||
placeholder="请选择装备状态"
|
||||
|
|
@ -34,27 +34,24 @@
|
|||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item prop="status">
|
||||
<el-select v-model="queryParams.status" placeholder="请选择装备分类" clearable>
|
||||
<el-option
|
||||
v-for="item in statusList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item prop="status">
|
||||
<el-select v-model="queryParams.status" placeholder="请选择装备型号" clearable>
|
||||
<el-option
|
||||
v-for="item in statusList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item prop="dateRange">
|
||||
<br>
|
||||
<el-form-item label="装备类目:" prop="deviceTypeList">
|
||||
<el-cascader
|
||||
v-model="deviceTypeList"
|
||||
:key="propsKey"
|
||||
:show-all-levels="false"
|
||||
:options="deviceTypeTree"
|
||||
:props="partTypeTreeProps"
|
||||
filterable clearable
|
||||
collapse-tags
|
||||
style="width:240px"
|
||||
placeholder="请选择装备类目"
|
||||
ref="deviceTypeCascader"
|
||||
popper-class="popper-select"
|
||||
@change="deviceTypeChange"
|
||||
></el-cascader>
|
||||
</el-form-item>
|
||||
<el-form-item label="更新时间:" prop="dateRange">
|
||||
<el-date-picker
|
||||
v-model="dateRange"
|
||||
type="datetimerange"
|
||||
|
|
@ -72,14 +69,14 @@
|
|||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success" plain
|
||||
type="success"
|
||||
size="mini" @click="equipmentAdd"
|
||||
>装备新建
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning" plain
|
||||
type="warning"
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleUpdateUpDown(null,2)"
|
||||
|
|
@ -87,10 +84,10 @@
|
|||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning" plain
|
||||
type="warning"
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleUpdateUpDown(null,3)"
|
||||
@click="handleUpdateUpDown(null,1)"
|
||||
>批量下架
|
||||
</el-button>
|
||||
</el-col>
|
||||
|
|
@ -103,42 +100,46 @@
|
|||
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="装备名称" align="center" prop="deviceName" width="150" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="装备编码" align="center" prop="code" width="150" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="装备类目" align="center" prop="groupName" width="150" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="装备型号" align="center" prop="modelName" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="装备状态" align="center" prop="maStatus" :show-overflow-tooltip="true">
|
||||
<el-table-column label="装备名称" align="center" prop="deviceName" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="装备编码" align="center" prop="code" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="装备类目" align="center" width="250" :show-overflow-tooltip="true">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.firstName }} <span v-show="scope.row.firstName">></span> {{ scope.row.secondName }}<span v-show="scope.row.secondName">></span>{{ scope.row.thirdName }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="装备型号" align="center" width="200" prop="typeName" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="装备状态" align="center" width="100" prop="maStatus" :show-overflow-tooltip="true">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.ma_machine_status" :value="scope.row.maStatus"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="更新时间" align="center" prop="updateTime" width="150" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="操作" align="center" width="250">
|
||||
<el-table-column label="更新时间" align="center" prop="updateTime" width="200" :show-overflow-tooltip="true"/>
|
||||
<el-table-column label="操作" align="center" width="300">
|
||||
<template slot-scope="scope">
|
||||
<!-- <el-button
|
||||
<el-button
|
||||
size="mini"
|
||||
@click="handleView(scope.row)">
|
||||
查看
|
||||
</el-button> -->
|
||||
<el-button
|
||||
</el-button>
|
||||
<el-button v-if="scope.row.maStatus == 0||scope.row.maStatus == 1"
|
||||
size="mini" type="primary"
|
||||
@click="handleUpdate(scope.row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
<el-button v-if="scope.row.maStatus == 0||scope.row.maStatus == 1||scope.row.maStatus == 2"
|
||||
size="mini" type="warning">
|
||||
<span
|
||||
v-if="scope.row.maStatus == 2"
|
||||
@click="handleUpdateUpDown(scope.row,3)">
|
||||
@click="handleUpdateUpDown(scope.row,1)">
|
||||
下架
|
||||
</span>
|
||||
<span
|
||||
v-if="scope.row.maStatus == 3"
|
||||
v-if="scope.row.maStatus == 0||scope.row.maStatus == 1"
|
||||
@click="handleUpdateUpDown(scope.row,2)">
|
||||
上架
|
||||
</span>
|
||||
</el-button>
|
||||
<el-button size="mini" type="danger" @click="delDev(scope.row)">
|
||||
<el-button size="mini" type="danger" @click="delDev(scope.row)" v-if="scope.row.maStatus == 0||scope.row.maStatus == 1">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
|
|
@ -156,7 +157,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import {getDevList, removeDevice,updateUpDown} from "@/api/lessor/equipment";
|
||||
import {getEquipmentType, getDevList, removeDevice, updateUpDown} from "@/api/lessor/equipment";
|
||||
|
||||
export default {
|
||||
name: "",
|
||||
|
|
@ -171,6 +172,19 @@ export default {
|
|||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 装备树结构数据
|
||||
deviceTypeTree: [],
|
||||
//选中装备数据
|
||||
deviceTypeList: [],
|
||||
// 装备树配置
|
||||
partTypeTreeProps: {
|
||||
children: "children",
|
||||
label: "name",
|
||||
multiple: false,
|
||||
value: "id",
|
||||
// multiple: true,
|
||||
},
|
||||
propsKey: 1000,
|
||||
statusList: [{id: '1', name: '状态1'}, {id: '2', name: '状态2'}, {id: '3', name: '状态3'}],
|
||||
ids: [],
|
||||
// 总条数
|
||||
|
|
@ -188,16 +202,32 @@ export default {
|
|||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
deviceName: undefined,
|
||||
code: undefined,
|
||||
keyWord: undefined,
|
||||
code: undefined,
|
||||
status: undefined,
|
||||
typeId: undefined,
|
||||
},
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getTypeTreeData()
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
//装备树
|
||||
async getTypeTreeData() {
|
||||
const params = {};
|
||||
const res = await getEquipmentType(params);
|
||||
console.log("treeData==========", res);
|
||||
this.deviceTypeTree = res.data;
|
||||
},
|
||||
deviceTypeChange(val){
|
||||
console.log(val)
|
||||
if(val.length > 0) {
|
||||
this.queryParams.typeId = val[3]
|
||||
} else {
|
||||
this.queryParams.typeId = ""
|
||||
}
|
||||
},
|
||||
/** 查询列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
|
|
@ -209,8 +239,8 @@ export default {
|
|||
this.queryParams.endTime = undefined
|
||||
}
|
||||
getDevList(this.queryParams).then(response => {
|
||||
this.tableList = response.rows;
|
||||
this.total = response.total;
|
||||
this.tableList = response.data.rows;
|
||||
this.total = response.data.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
|
|
@ -218,7 +248,8 @@ export default {
|
|||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.dateRange = []
|
||||
this.queryParams.keyWord = null;
|
||||
this.deviceTypeList = []
|
||||
this.queryParams.typeId = null;
|
||||
this.handleQuery();
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
|
|
@ -267,15 +298,15 @@ export default {
|
|||
this.handleQuery()
|
||||
}).catch(() => {
|
||||
})
|
||||
},
|
||||
},
|
||||
//查看
|
||||
handleView(row) {
|
||||
console.log(row)
|
||||
// let query = { Id:row.id,taskId: row.taskId,isView:"true" }
|
||||
// this.$tab.closeOpenPage({
|
||||
// path: '/purchase/goodsAcceptDetail',
|
||||
// query,
|
||||
// })
|
||||
console.log(row)
|
||||
let query = {maId: row.maId, isView: "true"}
|
||||
this.$tab.closeOpenPage({
|
||||
path: '/lessor/equipmentDetail',
|
||||
query,
|
||||
})
|
||||
},
|
||||
handleExport() {
|
||||
// this.download('/material/ma_machine/export', {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<div class="login">
|
||||
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
|
||||
<h3 class="title">博诺思后台管理系统</h3>
|
||||
<h3 class="title">安徽机械化施工装备平台</h3>
|
||||
<el-form-item prop="username">
|
||||
<el-input
|
||||
v-model="loginForm.username"
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
:rules="loginRules"
|
||||
class="login-form"
|
||||
>
|
||||
<h3 class="title">博诺思后台管理系统</h3>
|
||||
<h3 class="title">安徽机械化施工装备平台</h3>
|
||||
<template v-if="loginMethod === 'password'">
|
||||
<el-form-item prop="username">
|
||||
<el-input
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<div class="register">
|
||||
<el-form ref="registerForm" :model="registerForm" :rules="registerRules" class="register-form">
|
||||
<h3 class="title">博诺思后台管理系统</h3>
|
||||
<h3 class="title">安徽机械化施工装备平台</h3>
|
||||
<el-form-item prop="username">
|
||||
<el-input v-model="registerForm.username" type="text" auto-complete="off" placeholder="账号">
|
||||
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<div class="container">
|
||||
<div class="register">
|
||||
<el-form ref="registerForm" :model="registerForm" :rules="registerRules" class="register-form">
|
||||
<h3 class="title">博诺思后台管理系统</h3>
|
||||
<h3 class="title">安徽机械化施工装备平台</h3>
|
||||
|
||||
<el-form-item prop="nickName">
|
||||
<el-input v-model="registerForm.nickName" type="text" auto-complete="off" placeholder="请输入姓名">
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ function resolve(dir) {
|
|||
|
||||
const CompressionPlugin = require("compression-webpack-plugin");
|
||||
|
||||
const name = process.env.VUE_APP_TITLE || "博诺思管理系统"; // 网页标题
|
||||
const name = process.env.VUE_APP_TITLE || "安徽机械化施工装备平台"; // 网页标题
|
||||
|
||||
const port = process.env.port || process.env.npm_config_port || 80; // 端口
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue