|
@@ -25,30 +25,22 @@
|
|
</div>
|
|
</div>
|
|
<div class="base-expandable-content" :class="{ 'is-expanded': baseIsExpanded }">
|
|
<div class="base-expandable-content" :class="{ 'is-expanded': baseIsExpanded }">
|
|
<el-row>
|
|
<el-row>
|
|
- <el-col :span="8">
|
|
|
|
|
|
+ <el-col :span="6">
|
|
<el-form-item label="资产编码" prop="deviceCode">
|
|
<el-form-item label="资产编码" prop="deviceCode">
|
|
<el-input v-model="formData.deviceCode" placeholder="请输入资产编码" />
|
|
<el-input v-model="formData.deviceCode" placeholder="请输入资产编码" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col :span="8">
|
|
|
|
|
|
+ <el-col :span="6">
|
|
<el-form-item label="设备名称" prop="deviceName">
|
|
<el-form-item label="设备名称" prop="deviceName">
|
|
<el-input v-model="formData.deviceName" placeholder="请输入设备名称" />
|
|
<el-input v-model="formData.deviceName" placeholder="请输入设备名称" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col :span="8">
|
|
|
|
|
|
+ <el-col :span="6">
|
|
<el-form-item label="品牌" prop="brand">
|
|
<el-form-item label="品牌" prop="brand">
|
|
- <el-input v-model="formData.brand" placeholder="请输入品牌" @click="openForm"/>
|
|
|
|
-
|
|
|
|
|
|
+ <el-select v-model="formData.brand" placeholder="请输入品牌" @click="openForm"/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- </el-row>
|
|
|
|
- <el-row>
|
|
|
|
- <el-col :span="8">
|
|
|
|
- <el-form-item label="规格型号" prop="model">
|
|
|
|
- <el-input v-model="formData.model" placeholder="请输入规格型号" />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="8">
|
|
|
|
|
|
+ <el-col :span="6">
|
|
<el-form-item label="所在部门" prop="orgId">
|
|
<el-form-item label="所在部门" prop="orgId">
|
|
<el-tree-select
|
|
<el-tree-select
|
|
v-model="formData.orgId"
|
|
v-model="formData.orgId"
|
|
@@ -60,7 +52,9 @@
|
|
/>
|
|
/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col :span="8">
|
|
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-row>
|
|
|
|
+ <el-col :span="6">
|
|
<el-form-item label="设备状态">
|
|
<el-form-item label="设备状态">
|
|
<el-select v-model="formData.deviceStatus" placeholder="请选择">
|
|
<el-select v-model="formData.deviceStatus" placeholder="请选择">
|
|
<el-option
|
|
<el-option
|
|
@@ -71,10 +65,13 @@
|
|
/>
|
|
/>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- </el-col>
|
|
|
|
- </el-row>
|
|
|
|
- <el-row>
|
|
|
|
- <el-col :span="8">
|
|
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="6">
|
|
|
|
+ <el-form-item label="规格型号" prop="model">
|
|
|
|
+ <el-input v-model="formData.model" placeholder="请输入规格型号" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="6">
|
|
<el-form-item label="资产性质">
|
|
<el-form-item label="资产性质">
|
|
<el-select v-model="formData.assetProperty" placeholder="请选择">
|
|
<el-select v-model="formData.assetProperty" placeholder="请选择">
|
|
<el-option
|
|
<el-option
|
|
@@ -86,11 +83,18 @@
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col :span="8">
|
|
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-row>
|
|
|
|
+ <el-col :span="6">
|
|
<el-form-item label="图片" prop="picUrl">
|
|
<el-form-item label="图片" prop="picUrl">
|
|
- <UploadImg v-model="formData.picUrl" :disabled="isDetail" height="50px" />
|
|
|
|
|
|
+ <UploadImg v-model="formData.picUrl" :disabled="isDetail" height="60px" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
|
|
+ <el-col :span="18">
|
|
|
|
+ <el-form-item label="备注" prop="remark">
|
|
|
|
+ <el-input v-model="formData.remark" type="textarea" placeholder="请输入备注" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
</el-row>
|
|
</el-row>
|
|
</div>
|
|
</div>
|
|
<div style="margin-bottom: 20px;margin-top: 10px;margin-left: 15px">
|
|
<div style="margin-bottom: 20px;margin-top: 10px;margin-left: 15px">
|
|
@@ -112,19 +116,15 @@
|
|
</div>
|
|
</div>
|
|
<div class="zz-expandable-content" :class="{ 'is-expanded': zzIsExpanded }">
|
|
<div class="zz-expandable-content" :class="{ 'is-expanded': zzIsExpanded }">
|
|
<el-row>
|
|
<el-row>
|
|
- <el-col :span="8">
|
|
|
|
|
|
+ <el-col :span="6">
|
|
<el-form-item label="制造商" prop="manufacturerId">
|
|
<el-form-item label="制造商" prop="manufacturerId">
|
|
- <el-input v-model="formData.manufacturerId" placeholder="请输入制造商" />
|
|
|
|
|
|
+ <el-select v-model="formData.manufacturerId" placeholder="请输入制造商" @click="openCustomer('manufacturer')"/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col :span="8">
|
|
|
|
- <el-form-item label="供应商" prop="supplierId">
|
|
|
|
- <el-input v-model="formData.supplierId" placeholder="请输入供应商" />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="8">
|
|
|
|
- <el-form-item label="生产日期" prop="manDate">
|
|
|
|
|
|
+ <el-col :span="6">
|
|
|
|
+ <el-form-item label="生产日期" prop="manDate" >
|
|
<el-date-picker
|
|
<el-date-picker
|
|
|
|
+ style="width: 150%"
|
|
v-model="formData.manDate"
|
|
v-model="formData.manDate"
|
|
type="date"
|
|
type="date"
|
|
value-format="x"
|
|
value-format="x"
|
|
@@ -132,16 +132,27 @@
|
|
/>
|
|
/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- </el-row>
|
|
|
|
- <el-row>
|
|
|
|
- <el-col :span="8">
|
|
|
|
|
|
+ <el-col :span="6">
|
|
|
|
+ <el-form-item label="供应商" prop="supplierId">
|
|
|
|
+ <el-select v-model="formData.supplierId" placeholder="请输入供应商" @click="openCustomer('supplier')"/>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="6">
|
|
<el-form-item label="铭牌信息" prop="nameplate">
|
|
<el-form-item label="铭牌信息" prop="nameplate">
|
|
<el-input v-model="formData.nameplate" placeholder="请输入铭牌信息" />
|
|
<el-input v-model="formData.nameplate" placeholder="请输入铭牌信息" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col :span="8">
|
|
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-row>
|
|
|
|
+ <el-col :span="6">
|
|
<el-form-item label="质保到期" prop="expires">
|
|
<el-form-item label="质保到期" prop="expires">
|
|
- <el-input v-model="formData.expires" placeholder="请输入质保到期" />
|
|
|
|
|
|
+ <el-date-picker
|
|
|
|
+ style="width: 150%"
|
|
|
|
+ v-model="formData.expires"
|
|
|
|
+ type="date"
|
|
|
|
+ value-format="x"
|
|
|
|
+ placeholder="选择质保到期"
|
|
|
|
+ />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
@@ -165,14 +176,15 @@
|
|
</div>
|
|
</div>
|
|
<div class="cw-expandable-content" :class="{ 'is-expanded': cwIsExpanded }">
|
|
<div class="cw-expandable-content" :class="{ 'is-expanded': cwIsExpanded }">
|
|
<el-row>
|
|
<el-row>
|
|
- <el-col :span="8">
|
|
|
|
|
|
+ <el-col :span="6">
|
|
<el-form-item label="采购价格" prop="plPrice">
|
|
<el-form-item label="采购价格" prop="plPrice">
|
|
- <el-input v-model="formData.plPrice" type="number" placeholder="请输入采购/租赁价格" />
|
|
|
|
|
|
+ <el-input v-model="formData.plPrice" @input="handleInput(formData.plPrice, 'plPrice')" placeholder="请输入采购/租赁价格" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col :span="8">
|
|
|
|
|
|
+ <el-col :span="6">
|
|
<el-form-item label="采购日期" prop="plDate">
|
|
<el-form-item label="采购日期" prop="plDate">
|
|
<el-date-picker
|
|
<el-date-picker
|
|
|
|
+ style="width: 150%"
|
|
v-model="formData.plDate"
|
|
v-model="formData.plDate"
|
|
type="date"
|
|
type="date"
|
|
value-format="x"
|
|
value-format="x"
|
|
@@ -180,17 +192,15 @@
|
|
/>
|
|
/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col :span="8">
|
|
|
|
|
|
+ <el-col :span="6">
|
|
<el-form-item label="折旧年限" prop="plYear">
|
|
<el-form-item label="折旧年限" prop="plYear">
|
|
<el-input v-model="formData.plYear" type="number" placeholder="请输入折旧年限" />
|
|
<el-input v-model="formData.plYear" type="number" placeholder="请输入折旧年限" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- </el-row>
|
|
|
|
-
|
|
|
|
- <el-row>
|
|
|
|
- <el-col :span="8">
|
|
|
|
|
|
+ <el-col :span="6">
|
|
<el-form-item label="折旧开始日期" prop="plStartDate">
|
|
<el-form-item label="折旧开始日期" prop="plStartDate">
|
|
<el-date-picker
|
|
<el-date-picker
|
|
|
|
+ style="width: 150%"
|
|
v-model="formData.plStartDate"
|
|
v-model="formData.plStartDate"
|
|
type="date"
|
|
type="date"
|
|
value-format="x"
|
|
value-format="x"
|
|
@@ -198,27 +208,27 @@
|
|
/>
|
|
/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col :span="8">
|
|
|
|
|
|
+ </el-row>
|
|
|
|
+
|
|
|
|
+ <el-row>
|
|
|
|
+ <el-col :span="6">
|
|
<el-form-item label="已提折旧月数" prop="plMonthed">
|
|
<el-form-item label="已提折旧月数" prop="plMonthed">
|
|
- <el-input v-model="formData.plMonthed" placeholder="请输入已提折旧月数" />
|
|
|
|
|
|
+ <el-input v-model="formData.plMonthed" type="number" placeholder="请输入已提折旧月数" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col :span="8">
|
|
|
|
|
|
+ <el-col :span="6">
|
|
<el-form-item label="已提折旧金额" prop="plAmounted">
|
|
<el-form-item label="已提折旧金额" prop="plAmounted">
|
|
- <el-input v-model="formData.plAmounted" placeholder="请输入已提折旧金额" />
|
|
|
|
|
|
+ <el-input v-model="formData.plAmounted" @input="handleInput(formData.plAmounted, 'plAmounted')" placeholder="请输入已提折旧金额" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- </el-row>
|
|
|
|
- <el-row>
|
|
|
|
- <el-col :span="8">
|
|
|
|
|
|
+ <el-col :span="6">
|
|
<el-form-item label="剩余金额" prop="remainAmount">
|
|
<el-form-item label="剩余金额" prop="remainAmount">
|
|
- <el-input v-model="formData.remainAmount" placeholder="请输入剩余金额" />
|
|
|
|
|
|
+ <el-input v-model="formData.remainAmount" @input="handleInput(formData.remainAmount, 'remainAmount')" placeholder="请输入剩余金额" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
</div>
|
|
</div>
|
|
<div style="margin-bottom: 20px;margin-top: 10px;margin-left: 15px">
|
|
<div style="margin-bottom: 20px;margin-top: 10px;margin-left: 15px">
|
|
-
|
|
|
|
<el-button @click="qtInfoClick" style="font-size: 18px;border: none">
|
|
<el-button @click="qtInfoClick" style="font-size: 18px;border: none">
|
|
<Icon
|
|
<Icon
|
|
color="black"
|
|
color="black"
|
|
@@ -236,44 +246,11 @@
|
|
|
|
|
|
</div>
|
|
</div>
|
|
<div class="qt-expandable-content" :class="{ 'is-expanded': qtIsExpanded }">
|
|
<div class="qt-expandable-content" :class="{ 'is-expanded': qtIsExpanded }">
|
|
- <el-row>
|
|
|
|
- <el-col :span="8">
|
|
|
|
- <el-form-item label="资料分类id" prop="infoId">
|
|
|
|
- <el-input v-model="formData.infoId" placeholder="请输入资料分类id" />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="8">
|
|
|
|
- <el-form-item label="资料类型" prop="infoType">
|
|
|
|
- <el-select v-model="formData.infoType" placeholder="请选择资料类型">
|
|
|
|
- <el-option label="请选择字典生成" value="" />
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="8">
|
|
|
|
- <el-form-item label="资料名称" prop="infoName">
|
|
|
|
- <el-input v-model="formData.infoName" placeholder="请输入资料名称" />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- </el-row>
|
|
|
|
- <el-row>
|
|
|
|
- <el-col :span="8">
|
|
|
|
- <el-form-item label="资料备注" prop="infoRemark">
|
|
|
|
- <el-input v-model="formData.infoRemark" placeholder="请输入资料备注" />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :span="8">
|
|
|
|
- <el-form-item label="资料附件" prop="infoUrl">
|
|
|
|
- <el-input v-model="formData.infoUrl" placeholder="请输入资料附件" />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- </el-row>
|
|
|
|
|
|
+
|
|
|
|
|
|
<el-form-item label="动态模板信息" prop="templateJson">
|
|
<el-form-item label="动态模板信息" prop="templateJson">
|
|
<el-input v-model="formData.templateJson" placeholder="请输入动态模板信息" />
|
|
<el-input v-model="formData.templateJson" placeholder="请输入动态模板信息" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="备注" prop="remark">
|
|
|
|
- <el-input v-model="formData.remark" type="textarea" placeholder="请输入备注" />
|
|
|
|
- </el-form-item>
|
|
|
|
</div>
|
|
</div>
|
|
</el-form>
|
|
</el-form>
|
|
<!-- <template #footer>-->
|
|
<!-- <template #footer>-->
|
|
@@ -292,10 +269,12 @@
|
|
</el-form>
|
|
</el-form>
|
|
</ContentWrap>
|
|
</ContentWrap>
|
|
<BrandList ref="brandFormRef" @choose="brandChoose" />
|
|
<BrandList ref="brandFormRef" @choose="brandChoose" />
|
|
|
|
+ <CustomerList ref="customerFormRef" @choose="customerChoose" :type="customerType"/>
|
|
</template>
|
|
</template>
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
import { IotDeviceApi, IotDeviceVO } from '@/api/pms/device'
|
|
import { IotDeviceApi, IotDeviceVO } from '@/api/pms/device'
|
|
import BrandList from "@/views/pms/device/BrandList.vue";
|
|
import BrandList from "@/views/pms/device/BrandList.vue";
|
|
|
|
+import CustomerList from "@/views/pms/device/CustomerList.vue";
|
|
import {defaultProps, handleTree} from "@/utils/tree";
|
|
import {defaultProps, handleTree} from "@/utils/tree";
|
|
import * as DeptApi from "@/api/system/dept";
|
|
import * as DeptApi from "@/api/system/dept";
|
|
import {DICT_TYPE, getIntDictOptions} from "@/utils/dict";
|
|
import {DICT_TYPE, getIntDictOptions} from "@/utils/dict";
|
|
@@ -320,6 +299,7 @@ const dialogVisible = ref(false) // 弹窗的是否展示
|
|
const dialogTitle = ref('') // 弹窗的标题
|
|
const dialogTitle = ref('') // 弹窗的标题
|
|
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
|
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
|
const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
|
const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
|
|
|
+const customerType = ref('')
|
|
const formData = ref({
|
|
const formData = ref({
|
|
id: undefined,
|
|
id: undefined,
|
|
deviceCode: undefined,
|
|
deviceCode: undefined,
|
|
@@ -362,16 +342,23 @@ const formRules = reactive({
|
|
})
|
|
})
|
|
|
|
|
|
const brandChoose = (row) =>{
|
|
const brandChoose = (row) =>{
|
|
- debugger
|
|
|
|
console.log(JSON.stringify(row.value))
|
|
console.log(JSON.stringify(row.value))
|
|
formData.value.brand = row.value;
|
|
formData.value.brand = row.value;
|
|
-
|
|
|
|
|
|
+}
|
|
|
|
+const customerChoose = (row) =>{
|
|
|
|
+ console.log(JSON.stringify(row.value))
|
|
|
|
+ formData.value.brand = row.value;
|
|
}
|
|
}
|
|
/** 添加/修改操作 */
|
|
/** 添加/修改操作 */
|
|
const brandFormRef = ref()
|
|
const brandFormRef = ref()
|
|
const openForm = () => {
|
|
const openForm = () => {
|
|
brandFormRef.value.open()
|
|
brandFormRef.value.open()
|
|
}
|
|
}
|
|
|
|
+const customerFormRef = ref()
|
|
|
|
+const openCustomer = (type) => {
|
|
|
|
+ customerType.value = type;
|
|
|
|
+ customerFormRef.value.open()
|
|
|
|
+}
|
|
const allshouqi = () =>{
|
|
const allshouqi = () =>{
|
|
baseIsExpanded.value = false
|
|
baseIsExpanded.value = false
|
|
zzIsExpanded.value = false
|
|
zzIsExpanded.value = false
|
|
@@ -402,6 +389,30 @@ const open = async (type: string, id?: number) => {
|
|
}
|
|
}
|
|
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
|
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
|
|
|
|
|
|
|
+const handleInput = (value,obj) => {
|
|
|
|
+ // 1. 过滤非法字符(只允许数字和小数点)
|
|
|
|
+ let filtered = value.replace(/[^\d.]/g, '');
|
|
|
|
+
|
|
|
|
+ // 2. 处理多个小数点的情况
|
|
|
|
+ filtered = filtered.replace(/\.{2,}/g, '.');
|
|
|
|
+
|
|
|
|
+ // 3. 限制小数点后最多两位
|
|
|
|
+ let decimalParts = filtered.split('.');
|
|
|
|
+ if (decimalParts.length > 1) {
|
|
|
|
+ decimalParts = decimalParts.slice(0, 2);
|
|
|
|
+ filtered = decimalParts.join('.');
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 4. 处理以小数点开头的情况(自动补0)
|
|
|
|
+ if (filtered.startsWith('.')) {
|
|
|
|
+ filtered = '0' + filtered;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 5. 更新绑定值(同时处理连续输入多个0的情况)
|
|
|
|
+ formData.value[obj] = filtered.replace(/^0+(?=\d)/, '');
|
|
|
|
+
|
|
|
|
+};
|
|
|
|
+
|
|
const close = () => {
|
|
const close = () => {
|
|
delView(unref(currentRoute))
|
|
delView(unref(currentRoute))
|
|
push({ name: 'IotDevicePms',query: {
|
|
push({ name: 'IotDevicePms',query: {
|