冰雪专题App端 非站长人员不能确认
This commit is contained in:
parent
c4a886fcb0
commit
f65de6ca12
@ -2,31 +2,17 @@
|
|||||||
<div class="home">
|
<div class="home">
|
||||||
<van-nav-bar title="设备管理" fixed left-arrow @click-left="onClickLeft">
|
<van-nav-bar title="设备管理" fixed left-arrow @click-left="onClickLeft">
|
||||||
</van-nav-bar>
|
</van-nav-bar>
|
||||||
<van-search
|
<van-search shape="round" v-model="searchValue" :show-action="false" placeholder="请输入设备名称" />
|
||||||
shape="round"
|
|
||||||
v-model="searchValue"
|
|
||||||
:show-action="false"
|
|
||||||
placeholder="请输入设备名称"
|
|
||||||
/>
|
|
||||||
<van-cell-group>
|
<van-cell-group>
|
||||||
<van-cell title="当前站点" :value="detailData.mc" />
|
<van-cell title="当前站点" :value="detailData.mc" />
|
||||||
</van-cell-group>
|
</van-cell-group>
|
||||||
<van-notice-bar
|
<van-notice-bar mode="link" v-if="pendingConfirmList.length" @click="handleConfirm">{{ pendingConfirmList.length
|
||||||
mode="link"
|
}}个设备待确认</van-notice-bar>
|
||||||
v-if="pendingConfirmList.length"
|
|
||||||
@click="handleConfirm"
|
|
||||||
>{{ pendingConfirmList.length }}个设备待确认</van-notice-bar
|
|
||||||
>
|
|
||||||
|
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<van-cell-group>
|
<van-cell-group>
|
||||||
<van-cell
|
<van-cell v-for="(item, index) in equipmentList" :key="index" :title="item.sbmc" is-link
|
||||||
v-for="(item, index) in equipmentList"
|
:label="`设备类型: ` + item.sblx" :to="{
|
||||||
:key="index"
|
|
||||||
:title="item.sbmc"
|
|
||||||
is-link
|
|
||||||
:label="`设备类型: ` + item.sblx"
|
|
||||||
:to="{
|
|
||||||
name: 'EquipDetail',
|
name: 'EquipDetail',
|
||||||
params: {
|
params: {
|
||||||
data: encodeURIComponent(
|
data: encodeURIComponent(
|
||||||
@ -37,352 +23,159 @@
|
|||||||
})
|
})
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
}"
|
}">
|
||||||
>
|
|
||||||
<template #value>
|
<template #value>
|
||||||
<span
|
<span :class="[
|
||||||
:class="[
|
'status-tag',
|
||||||
'status-tag',
|
`status-` +
|
||||||
`status-` +
|
(item.sbzt === '完好'
|
||||||
(item.sbzt === '完好'
|
? 'good'
|
||||||
? 'good'
|
: item.sbzt === '损坏'
|
||||||
: item.sbzt === '损坏'
|
? 'warning'
|
||||||
? 'warning'
|
: 'danger'),
|
||||||
: 'danger'),
|
]">{{ item.sbzt }}</span>
|
||||||
]"
|
|
||||||
>{{ item.sbzt }}</span
|
|
||||||
>
|
|
||||||
</template>
|
</template>
|
||||||
</van-cell>
|
</van-cell>
|
||||||
</van-cell-group>
|
</van-cell-group>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<van-button
|
<van-button type="primary" class="add-btn" icon="plus" @click="handleAddDevice">
|
||||||
type="primary"
|
|
||||||
class="add-btn"
|
|
||||||
icon="plus"
|
|
||||||
@click="handleAddDevice"
|
|
||||||
>
|
|
||||||
添加设备
|
添加设备
|
||||||
</van-button>
|
</van-button>
|
||||||
|
|
||||||
<!-- 添加设备弹窗 -->
|
<!-- 添加设备弹窗 -->
|
||||||
<van-popup
|
<van-popup :show="showPopup" position="bottom" closeable close-on-click-overlay :style="{ height: '80%' }"
|
||||||
:show="showPopup"
|
@close="onPopupClose">
|
||||||
position="bottom"
|
|
||||||
closeable
|
|
||||||
close-on-click-overlay
|
|
||||||
:style="{ height: '80%' }"
|
|
||||||
@close="onPopupClose"
|
|
||||||
>
|
|
||||||
<!-- 表单部分 -->
|
<!-- 表单部分 -->
|
||||||
<van-form class="device-form" label-align="left" colon>
|
<van-form class="device-form" label-align="left" colon>
|
||||||
<h3>设备信息</h3>
|
<h3>设备信息</h3>
|
||||||
|
|
||||||
<!-- 设备名称 -->
|
<!-- 设备名称 -->
|
||||||
<van-field
|
<van-field v-model="form.equipment.sbmc" label="设备名称" placeholder="请输入设备名称"
|
||||||
v-model="form.equipment.sbmc"
|
:rules="[{ required: true, message: '请填写设备名称' }]" maxlength="20" show-word-limit>
|
||||||
label="设备名称"
|
|
||||||
placeholder="请输入设备名称"
|
|
||||||
:rules="[{ required: true, message: '请填写设备名称' }]"
|
|
||||||
maxlength="20"
|
|
||||||
show-word-limit
|
|
||||||
>
|
|
||||||
</van-field>
|
</van-field>
|
||||||
|
|
||||||
<!-- 设备大类 -->
|
<!-- 设备大类 -->
|
||||||
<van-field
|
<van-field v-model="form.equipment.sbdl" is-link arrow-direction="down" label="设备大类" placeholder="请选择设备大类"
|
||||||
v-model="form.equipment.sbdl"
|
@click="showCategoryPicker = true" ref="categoryField" />
|
||||||
is-link
|
|
||||||
arrow-direction="down"
|
|
||||||
label="设备大类"
|
|
||||||
placeholder="请选择设备大类"
|
|
||||||
@click="showCategoryPicker = true"
|
|
||||||
ref="categoryField"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 设备类型 -->
|
<!-- 设备类型 -->
|
||||||
<van-field
|
<van-field v-model="form.equipment.sblx" is-link arrow-direction="down" label="设备类型" placeholder="请选择设备类型"
|
||||||
v-model="form.equipment.sblx"
|
@click="showTypePicker = true" ref="typeField" />
|
||||||
is-link
|
|
||||||
arrow-direction="down"
|
|
||||||
label="设备类型"
|
|
||||||
placeholder="请选择设备类型"
|
|
||||||
@click="showTypePicker = true"
|
|
||||||
ref="typeField"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 设备编号 -->
|
<!-- 设备编号 -->
|
||||||
<van-field
|
<van-field v-model="form.equipment.sbbh" label="设备编号" placeholder="请输入设备编号"
|
||||||
v-model="form.equipment.sbbh"
|
:rules="[{ required: true, message: '请填写设备编号' }]" />
|
||||||
label="设备编号"
|
|
||||||
placeholder="请输入设备编号"
|
|
||||||
:rules="[{ required: true, message: '请填写设备编号' }]"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 设备型号 -->
|
<!-- 设备型号 -->
|
||||||
<van-field
|
<van-field v-model="form.equipment.sbxh" label="设备型号" placeholder="请输入设备型号"
|
||||||
v-model="form.equipment.sbxh"
|
:rules="[{ required: true, message: '请填写设备型号' }]" />
|
||||||
label="设备型号"
|
|
||||||
placeholder="请输入设备型号"
|
|
||||||
:rules="[{ required: true, message: '请填写设备型号' }]"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 设备经度 -->
|
<!-- 设备经度 -->
|
||||||
<van-field
|
<van-field v-model="form.equipment.jd" label="设备经度" placeholder="请输入设备经度" />
|
||||||
v-model="form.equipment.jd"
|
|
||||||
label="设备经度"
|
|
||||||
placeholder="请输入设备经度"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 设备纬度 -->
|
<!-- 设备纬度 -->
|
||||||
<van-field
|
<van-field v-model="form.equipment.wd" label="设备纬度" placeholder="请输入设备纬度" />
|
||||||
v-model="form.equipment.wd"
|
|
||||||
label="设备纬度"
|
|
||||||
placeholder="请输入设备纬度"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 设备管理员 -->
|
<!-- 设备管理员 -->
|
||||||
<van-field
|
<van-field v-model="form.equipment.glry" is-link arrow-direction="down" readonly label="管理人员"
|
||||||
v-model="form.equipment.glry"
|
placeholder="请选择设备管理人员" @click="showAdminPicker = true" />
|
||||||
is-link
|
|
||||||
arrow-direction="down"
|
|
||||||
readonly
|
|
||||||
label="管理人员"
|
|
||||||
placeholder="请选择设备管理人员"
|
|
||||||
@click="showAdminPicker = true"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 操作员 -->
|
<!-- 操作员 -->
|
||||||
<van-field
|
<van-field v-model="form.equipment.czy" is-link arrow-direction="down" readonly label="操作员" placeholder="请选择操作员"
|
||||||
v-model="form.equipment.czy"
|
@click="showOperatorPicker = true" />
|
||||||
is-link
|
|
||||||
arrow-direction="down"
|
|
||||||
readonly
|
|
||||||
label="操作员"
|
|
||||||
placeholder="请选择操作员"
|
|
||||||
@click="showOperatorPicker = true"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 购买费用 -->
|
<!-- 购买费用 -->
|
||||||
<van-field
|
<van-field v-model="form.equipment.gmfy" type="number" label="购买费用(万元)" placeholder="请输入购买费用" />
|
||||||
v-model="form.equipment.gmfy"
|
|
||||||
type="number"
|
|
||||||
label="购买费用(万元)"
|
|
||||||
placeholder="请输入购买费用"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 购置日期 -->
|
<!-- 购置日期 -->
|
||||||
<van-field
|
<van-field v-model="form.equipment.gzrq" is-link arrow-direction="down" readonly label="购置日期"
|
||||||
v-model="form.equipment.gzrq"
|
placeholder="请选择日期" @click="showTimePicker = true" />
|
||||||
is-link
|
|
||||||
arrow-direction="down"
|
|
||||||
readonly
|
|
||||||
label="购置日期"
|
|
||||||
placeholder="请选择日期"
|
|
||||||
@click="showTimePicker = true"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 设备状态 -->
|
<!-- 设备状态 -->
|
||||||
<van-field
|
<van-field v-model="form.equipment.sbzt" is-link arrow-direction="down" readonly label="设备状态"
|
||||||
v-model="form.equipment.sbzt"
|
placeholder="请选择设备状态" @click="showStatusPicker = true" />
|
||||||
is-link
|
|
||||||
arrow-direction="down"
|
|
||||||
readonly
|
|
||||||
label="设备状态"
|
|
||||||
placeholder="请选择设备状态"
|
|
||||||
@click="showStatusPicker = true"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 生产厂家 -->
|
<!-- 生产厂家 -->
|
||||||
<van-field
|
<van-field v-model="form.equipment.sccj" label="生产厂家" placeholder="请输入生产厂家" />
|
||||||
v-model="form.equipment.sccj"
|
|
||||||
label="生产厂家"
|
|
||||||
placeholder="请输入生产厂家"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 是否应急设备 -->
|
<!-- 是否应急设备 -->
|
||||||
<van-field
|
<van-field v-model="form.equipment.sfyjsb" is-link arrow-direction="down" readonly label="是否应急设备"
|
||||||
v-model="form.equipment.sfyjsb"
|
placeholder="请选择" @click="showEmergencyPicker = true" />
|
||||||
is-link
|
|
||||||
arrow-direction="down"
|
|
||||||
readonly
|
|
||||||
label="是否应急设备"
|
|
||||||
placeholder="请选择"
|
|
||||||
@click="showEmergencyPicker = true"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 是否纳入市级补助范围 -->
|
<!-- 是否纳入市级补助范围 -->
|
||||||
<van-field
|
<van-field v-model="form.equipment.sfnrsjbz" is-link arrow-direction="down" readonly label="是否纳入市级补助范围"
|
||||||
v-model="form.equipment.sfnrsjbz"
|
placeholder="请选择" @click="showSubsidyPicker = true" />
|
||||||
is-link
|
|
||||||
arrow-direction="down"
|
|
||||||
readonly
|
|
||||||
label="是否纳入市级补助范围"
|
|
||||||
placeholder="请选择"
|
|
||||||
@click="showSubsidyPicker = true"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 辐射范围 -->
|
<!-- 辐射范围 -->
|
||||||
<van-field
|
<van-field v-model="form.equipment.fsfw" label="辐射范围" placeholder="请输入辐射范围" />
|
||||||
v-model="form.equipment.fsfw"
|
|
||||||
label="辐射范围"
|
|
||||||
placeholder="请输入辐射范围"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 备注 -->
|
<!-- 备注 -->
|
||||||
<van-field
|
<van-field v-model="form.equipment.remark" label="备注" placeholder="请输入备注" type="textarea" />
|
||||||
v-model="form.equipment.remark"
|
|
||||||
label="备注"
|
|
||||||
placeholder="请输入备注"
|
|
||||||
type="textarea"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<van-field label="设备照片" center>
|
<van-field label="设备照片" center>
|
||||||
<template #input>
|
<template #input>
|
||||||
<van-uploader
|
<van-uploader v-model="fileList" @delete="handleDelete" name="photos" :file-list="fileList"
|
||||||
v-model="fileList"
|
:file-type="['image/jpeg', 'image/png']" :after-read="afterRead" multiple :max-count="6" />
|
||||||
@delete="handleDelete"
|
|
||||||
name="photos"
|
|
||||||
:file-list="fileList"
|
|
||||||
:file-type="['image/jpeg', 'image/png']"
|
|
||||||
:after-read="afterRead"
|
|
||||||
multiple
|
|
||||||
:max-count="6"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
</van-field>
|
</van-field>
|
||||||
|
|
||||||
<!-- 选择器弹窗 -->
|
<!-- 选择器弹窗 -->
|
||||||
<!-- 设备大类弹窗 -->
|
<!-- 设备大类弹窗 -->
|
||||||
<van-popup
|
<van-popup :show="showCategoryPicker" round position="bottom" close-on-click-overlay
|
||||||
:show="showCategoryPicker"
|
@close="showCategoryPicker = false">
|
||||||
round
|
<van-picker title="选择设备大类" :columns="categoryOptions" @confirm="onCategoryConfirm"
|
||||||
position="bottom"
|
@cancel="showCategoryPicker = false" />
|
||||||
close-on-click-overlay
|
|
||||||
@close="showCategoryPicker = false"
|
|
||||||
>
|
|
||||||
<van-picker
|
|
||||||
title="选择设备大类"
|
|
||||||
:columns="categoryOptions"
|
|
||||||
@confirm="onCategoryConfirm"
|
|
||||||
@cancel="showCategoryPicker = false"
|
|
||||||
/>
|
|
||||||
</van-popup>
|
</van-popup>
|
||||||
|
|
||||||
<!-- 设备类型弹窗 -->
|
<!-- 设备类型弹窗 -->
|
||||||
<van-popup
|
<van-popup :show="showTypePicker" round position="bottom" close-on-click-overlay
|
||||||
:show="showTypePicker"
|
@close="showTypePicker = false">
|
||||||
round
|
<van-picker title="选择设备类型" :columns="typeOptions" @confirm="onTypeConfirm" @cancel="showTypePicker = false" />
|
||||||
position="bottom"
|
|
||||||
close-on-click-overlay
|
|
||||||
@close="showTypePicker = false"
|
|
||||||
>
|
|
||||||
<van-picker
|
|
||||||
title="选择设备类型"
|
|
||||||
:columns="typeOptions"
|
|
||||||
@confirm="onTypeConfirm"
|
|
||||||
@cancel="showTypePicker = false"
|
|
||||||
/>
|
|
||||||
</van-popup>
|
</van-popup>
|
||||||
|
|
||||||
<!-- 设备管理员弹窗 -->
|
<!-- 设备管理员弹窗 -->
|
||||||
<van-popup
|
<van-popup :show="showAdminPicker" round position="bottom" close-on-click-overlay
|
||||||
:show="showAdminPicker"
|
@close="showAdminPicker = false">
|
||||||
round
|
<van-picker title="选择设备管理员" :columns="adminOptions" @confirm="onAdminConfirm"
|
||||||
position="bottom"
|
@cancel="showAdminPicker = false" />
|
||||||
close-on-click-overlay
|
|
||||||
@close="showAdminPicker = false"
|
|
||||||
>
|
|
||||||
<van-picker
|
|
||||||
title="选择设备管理员"
|
|
||||||
:columns="adminOptions"
|
|
||||||
@confirm="onAdminConfirm"
|
|
||||||
@cancel="showAdminPicker = false"
|
|
||||||
/>
|
|
||||||
</van-popup>
|
</van-popup>
|
||||||
|
|
||||||
<!-- 操作员弹窗 -->
|
<!-- 操作员弹窗 -->
|
||||||
<van-popup
|
<van-popup :show="showOperatorPicker" round position="bottom" close-on-click-overlay
|
||||||
:show="showOperatorPicker"
|
@close="showOperatorPicker = false">
|
||||||
round
|
<van-picker title="选择操作员" :columns="operatorOptions" @confirm="operatorConfirm"
|
||||||
position="bottom"
|
@cancel="showOperatorPicker = false" />
|
||||||
close-on-click-overlay
|
|
||||||
@close="showOperatorPicker = false"
|
|
||||||
>
|
|
||||||
<van-picker
|
|
||||||
title="选择操作员"
|
|
||||||
:columns="operatorOptions"
|
|
||||||
@confirm="operatorConfirm"
|
|
||||||
@cancel="showOperatorPicker = false"
|
|
||||||
/>
|
|
||||||
</van-popup>
|
</van-popup>
|
||||||
|
|
||||||
<!-- 购置日期弹窗 -->
|
<!-- 购置日期弹窗 -->
|
||||||
<van-popup
|
<van-popup :show="showTimePicker" round position="bottom" close-on-click-overlay
|
||||||
:show="showTimePicker"
|
@close="showTimePicker = false">
|
||||||
round
|
<van-date-picker v-model="currentDate" title="选择购置日期" @confirm="onDateConfirm"
|
||||||
position="bottom"
|
@cancel="showTimePicker = false" />
|
||||||
close-on-click-overlay
|
|
||||||
@close="showTimePicker = false"
|
|
||||||
>
|
|
||||||
<van-date-picker
|
|
||||||
v-model="currentDate"
|
|
||||||
title="选择购置日期"
|
|
||||||
@confirm="onDateConfirm"
|
|
||||||
@cancel="showTimePicker = false"
|
|
||||||
/>
|
|
||||||
</van-popup>
|
</van-popup>
|
||||||
|
|
||||||
<!-- 设备状态弹窗 -->
|
<!-- 设备状态弹窗 -->
|
||||||
<van-popup
|
<van-popup :show="showStatusPicker" round position="bottom" close-on-click-overlay
|
||||||
:show="showStatusPicker"
|
@close="showStatusPicker = false">
|
||||||
round
|
<van-picker title="选择设备状态" :columns="statusOptions" @confirm="onStatusConfirm"
|
||||||
position="bottom"
|
@cancel="showStatusPicker = false" />
|
||||||
close-on-click-overlay
|
|
||||||
@close="showStatusPicker = false"
|
|
||||||
>
|
|
||||||
<van-picker
|
|
||||||
title="选择设备状态"
|
|
||||||
:columns="statusOptions"
|
|
||||||
@confirm="onStatusConfirm"
|
|
||||||
@cancel="showStatusPicker = false"
|
|
||||||
/>
|
|
||||||
</van-popup>
|
</van-popup>
|
||||||
|
|
||||||
<!-- 是否应急设备弹窗 -->
|
<!-- 是否应急设备弹窗 -->
|
||||||
<van-popup
|
<van-popup :show="showEmergencyPicker" round position="bottom" close-on-click-overlay
|
||||||
:show="showEmergencyPicker"
|
@close="showEmergencyPicker = false">
|
||||||
round
|
<van-picker title="是否应急设备" :columns="emergencyOptions" @confirm="onEmergencyConfirm"
|
||||||
position="bottom"
|
@cancel="showEmergencyPicker = false" />
|
||||||
close-on-click-overlay
|
|
||||||
@close="showEmergencyPicker = false"
|
|
||||||
>
|
|
||||||
<van-picker
|
|
||||||
title="是否应急设备"
|
|
||||||
:columns="emergencyOptions"
|
|
||||||
@confirm="onEmergencyConfirm"
|
|
||||||
@cancel="showEmergencyPicker = false"
|
|
||||||
/>
|
|
||||||
</van-popup>
|
</van-popup>
|
||||||
<!-- 是否纳入市级补助范围弹窗 -->
|
<!-- 是否纳入市级补助范围弹窗 -->
|
||||||
<van-popup
|
<van-popup :show="showSubsidyPicker" round position="bottom" close-on-click-overlay
|
||||||
:show="showSubsidyPicker"
|
@close="showSubsidyPicker = false">
|
||||||
round
|
<van-picker title="是否纳入市级补助" :columns="subsidyOptions" @confirm="onSubsidyConfirm"
|
||||||
position="bottom"
|
@cancel="showSubsidyPicker = false" />
|
||||||
close-on-click-overlay
|
|
||||||
@close="showSubsidyPicker = false"
|
|
||||||
>
|
|
||||||
<van-picker
|
|
||||||
title="是否纳入市级补助"
|
|
||||||
:columns="subsidyOptions"
|
|
||||||
@confirm="onSubsidyConfirm"
|
|
||||||
@cancel="showSubsidyPicker = false"
|
|
||||||
/>
|
|
||||||
</van-popup>
|
</van-popup>
|
||||||
</van-form>
|
</van-form>
|
||||||
<div
|
<div style="
|
||||||
style="
|
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
@ -391,15 +184,8 @@
|
|||||||
background: white;
|
background: white;
|
||||||
box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
|
box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
"
|
">
|
||||||
>
|
<van-button round block type="primary" native-type="submit" @click="handleSubmit">
|
||||||
<van-button
|
|
||||||
round
|
|
||||||
block
|
|
||||||
type="primary"
|
|
||||||
native-type="submit"
|
|
||||||
@click="handleSubmit"
|
|
||||||
>
|
|
||||||
保存
|
保存
|
||||||
</van-button>
|
</van-button>
|
||||||
</div>
|
</div>
|
||||||
@ -496,11 +282,23 @@ const getPendingConfirmList = async (sbmc) => {
|
|||||||
|
|
||||||
// 跳转到待确认设备页
|
// 跳转到待确认设备页
|
||||||
const handleConfirm = () => {
|
const handleConfirm = () => {
|
||||||
router.push({
|
if (detailData.value.isManager) {
|
||||||
name: "EquipConfirm",
|
router.push({
|
||||||
params: {
|
name: "EquipConfirm",
|
||||||
data: encodeURIComponent(JSON.stringify(detailData.value)),
|
params: {
|
||||||
},
|
data: encodeURIComponent(JSON.stringify(detailData.value)),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
} else{
|
||||||
|
handleMessage();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// 弹出提示
|
||||||
|
const handleMessage = () => {
|
||||||
|
showToast({
|
||||||
|
type: "fail",
|
||||||
|
message: "您不是站长,无法确认设备",
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -829,7 +627,8 @@ const handleSubmit = async () => {
|
|||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.home {
|
.home {
|
||||||
padding-top: var(--van-nav-bar-height); /* 自动匹配导航栏高度 */
|
padding-top: var(--van-nav-bar-height);
|
||||||
|
/* 自动匹配导航栏高度 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.content {
|
.content {
|
||||||
@ -869,12 +668,15 @@ const handleSubmit = async () => {
|
|||||||
color: white;
|
color: white;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-good {
|
.status-good {
|
||||||
background-color: #07c160;
|
background-color: #07c160;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-warning {
|
.status-warning {
|
||||||
background-color: #ff976a;
|
background-color: #ff976a;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-danger {
|
.status-danger {
|
||||||
background-color: #ee0a24;
|
background-color: #ee0a24;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,31 +2,17 @@
|
|||||||
<div class="home">
|
<div class="home">
|
||||||
<van-nav-bar title="物资管理" fixed left-arrow @click-left="onClickLeft">
|
<van-nav-bar title="物资管理" fixed left-arrow @click-left="onClickLeft">
|
||||||
</van-nav-bar>
|
</van-nav-bar>
|
||||||
<van-search
|
<van-search shape="round" v-model="searchValue" :show-action="false" placeholder="请输入物资名称" />
|
||||||
shape="round"
|
|
||||||
v-model="searchValue"
|
|
||||||
:show-action="false"
|
|
||||||
placeholder="请输入物资名称"
|
|
||||||
/>
|
|
||||||
<van-cell-group>
|
<van-cell-group>
|
||||||
<van-cell title="当前站点" :value="yhzDetail.mc" />
|
<van-cell title="当前站点" :value="yhzDetail.mc" />
|
||||||
</van-cell-group>
|
</van-cell-group>
|
||||||
<van-notice-bar
|
<van-notice-bar mode="link" v-if="pendingConfirmList.length" @click="handleConfirm">{{ pendingConfirmList.length
|
||||||
mode="link"
|
}}个物资待确认</van-notice-bar>
|
||||||
v-if="pendingConfirmList.length"
|
|
||||||
@click="handleConfirm"
|
|
||||||
>{{ pendingConfirmList.length }}个物资待确认</van-notice-bar
|
|
||||||
>
|
|
||||||
|
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<van-cell-group>
|
<van-cell-group>
|
||||||
<van-cell
|
<van-cell v-for="(item, index) in materialList" :key="index" :title="item.wzmc" is-link
|
||||||
v-for="(item, index) in materialList"
|
:label="`余量:${item.ye} (${item.dw})`" :to="{
|
||||||
:key="index"
|
|
||||||
:title="item.wzmc"
|
|
||||||
is-link
|
|
||||||
:label="`余量:${item.ye} (${item.dw})`"
|
|
||||||
:to="{
|
|
||||||
name: 'MaterialDetail',
|
name: 'MaterialDetail',
|
||||||
params: {
|
params: {
|
||||||
data: encodeURIComponent(
|
data: encodeURIComponent(
|
||||||
@ -37,8 +23,7 @@
|
|||||||
})
|
})
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
}"
|
}">
|
||||||
>
|
|
||||||
</van-cell>
|
</van-cell>
|
||||||
</van-cell-group>
|
</van-cell-group>
|
||||||
<van-button type="primary" class="add-btn" icon="plus" @click="handleAdd">
|
<van-button type="primary" class="add-btn" icon="plus" @click="handleAdd">
|
||||||
@ -47,148 +32,62 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 弹出层 -->
|
<!-- 弹出层 -->
|
||||||
<van-popup
|
<van-popup :show="showPopup" position="bottom" closeable close-on-click-overlay @close="onPopupClose">
|
||||||
:show="showPopup"
|
|
||||||
position="bottom"
|
|
||||||
closeable
|
|
||||||
close-on-click-overlay
|
|
||||||
@close="onPopupClose"
|
|
||||||
>
|
|
||||||
<van-form class="materialAddForm" label-align="left" colon>
|
<van-form class="materialAddForm" label-align="left" colon>
|
||||||
<h3>添加物资</h3>
|
<h3>添加物资</h3>
|
||||||
|
|
||||||
<!-- 物资名称 -->
|
<!-- 物资名称 -->
|
||||||
<van-field
|
<van-field v-model="form.material.wzmc" label="物资名称" placeholder="请输入物资名称"
|
||||||
v-model="form.material.wzmc"
|
:rules="[{ required: true, message: '请填写物资名称' }]" maxlength="20" show-word-limit>
|
||||||
label="物资名称"
|
|
||||||
placeholder="请输入物资名称"
|
|
||||||
:rules="[{ required: true, message: '请填写物资名称' }]"
|
|
||||||
maxlength="20"
|
|
||||||
show-word-limit
|
|
||||||
>
|
|
||||||
</van-field>
|
</van-field>
|
||||||
|
|
||||||
<!-- 数量 -->
|
<!-- 数量 -->
|
||||||
<van-field
|
<van-field v-model="form.material.sl" label="数量" placeholder="请输入数量" type="number"
|
||||||
v-model="form.material.sl"
|
:rules="[{ required: true, message: '请填写物资数量' }]"></van-field>
|
||||||
label="数量"
|
|
||||||
placeholder="请输入数量"
|
|
||||||
type="number"
|
|
||||||
:rules="[{ required: true, message: '请填写物资数量' }]"
|
|
||||||
></van-field>
|
|
||||||
|
|
||||||
<!-- 单位 -->
|
<!-- 单位 -->
|
||||||
<van-field
|
<van-field v-model="form.material.dw" is-link arrow-direction="down" label="单位" placeholder="物资单位"
|
||||||
v-model="form.material.dw"
|
@click="showDwPicker = true" ref="dwField" />
|
||||||
is-link
|
<van-popup :show="showDwPicker" round position="bottom" close-on-click-overlay @close="showDwPicker = false">
|
||||||
arrow-direction="down"
|
<van-picker title="选择物资单位" :columns="dwOptions" @confirm="onDwConfirm" @cancel="showDwPicker = false" />
|
||||||
label="单位"
|
|
||||||
placeholder="物资单位"
|
|
||||||
@click="showDwPicker = true"
|
|
||||||
ref="dwField"
|
|
||||||
/>
|
|
||||||
<van-popup
|
|
||||||
:show="showDwPicker"
|
|
||||||
round
|
|
||||||
position="bottom"
|
|
||||||
close-on-click-overlay
|
|
||||||
@close="showDwPicker = false"
|
|
||||||
>
|
|
||||||
<van-picker
|
|
||||||
title="选择物资单位"
|
|
||||||
:columns="dwOptions"
|
|
||||||
@confirm="onDwConfirm"
|
|
||||||
@cancel="showDwPicker = false"
|
|
||||||
/>
|
|
||||||
</van-popup>
|
</van-popup>
|
||||||
|
|
||||||
<!-- 物资经度 -->
|
<!-- 物资经度 -->
|
||||||
<van-field
|
<van-field v-model="form.material.jd" label="物资经度" placeholder="请输入物资经度">
|
||||||
v-model="form.material.jd"
|
|
||||||
label="物资经度"
|
|
||||||
placeholder="请输入物资经度"
|
|
||||||
>
|
|
||||||
<template #button>
|
<template #button>
|
||||||
<van-button
|
<van-button size="small" type="primary" @click.stop="handleGetLocation">获取位置</van-button>
|
||||||
size="small"
|
|
||||||
type="primary"
|
|
||||||
@click.stop="handleGetLocation"
|
|
||||||
>获取位置</van-button
|
|
||||||
>
|
|
||||||
</template>
|
</template>
|
||||||
</van-field>
|
</van-field>
|
||||||
<!-- 物资纬度 -->
|
<!-- 物资纬度 -->
|
||||||
<van-field
|
<van-field v-model="form.material.wd" label="物资纬度" placeholder="请输入物资纬度">
|
||||||
v-model="form.material.wd"
|
|
||||||
label="物资纬度"
|
|
||||||
placeholder="请输入物资纬度"
|
|
||||||
>
|
|
||||||
<template #button>
|
<template #button>
|
||||||
<van-button
|
<van-button size="small" type="primary" @click.stop="handleGetLocation">获取位置</van-button>
|
||||||
size="small"
|
|
||||||
type="primary"
|
|
||||||
@click.stop="handleGetLocation"
|
|
||||||
>获取位置</van-button
|
|
||||||
>
|
|
||||||
</template>
|
</template>
|
||||||
</van-field>
|
</van-field>
|
||||||
|
|
||||||
<!-- 负责人 -->
|
<!-- 负责人 -->
|
||||||
<van-field
|
<van-field v-model="form.material.fzr" is-link arrow-direction="down" readonly label="负责人" placeholder="请选择负责人"
|
||||||
v-model="form.material.fzr"
|
@click="showFzrPicker = true" />
|
||||||
is-link
|
|
||||||
arrow-direction="down"
|
|
||||||
readonly
|
|
||||||
label="负责人"
|
|
||||||
placeholder="请选择负责人"
|
|
||||||
@click="showFzrPicker = true"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 负责人弹窗 -->
|
<!-- 负责人弹窗 -->
|
||||||
<van-popup
|
<van-popup :show="showFzrPicker" round position="bottom" close-on-click-overlay @close="showFzrPicker = false">
|
||||||
:show="showFzrPicker"
|
<van-picker title="选择设备管理员" :columns="fzrOptions" @confirm="onFzrConfirm" @cancel="showFzrPicker = false" />
|
||||||
round
|
|
||||||
position="bottom"
|
|
||||||
close-on-click-overlay
|
|
||||||
@close="showFzrPicker = false"
|
|
||||||
>
|
|
||||||
<van-picker
|
|
||||||
title="选择设备管理员"
|
|
||||||
:columns="fzrOptions"
|
|
||||||
@confirm="onFzrConfirm"
|
|
||||||
@cancel="showFzrPicker = false"
|
|
||||||
/>
|
|
||||||
</van-popup>
|
</van-popup>
|
||||||
|
|
||||||
<!-- 备注 -->
|
<!-- 备注 -->
|
||||||
<van-field
|
<van-field v-model="form.material.remark" label="备注" type="textarea" placeholder="" maxlength="20"
|
||||||
v-model="form.material.remark"
|
show-word-limit>
|
||||||
label="备注"
|
|
||||||
type="textarea"
|
|
||||||
placeholder=""
|
|
||||||
maxlength="20"
|
|
||||||
show-word-limit
|
|
||||||
>
|
|
||||||
</van-field>
|
</van-field>
|
||||||
|
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<van-field label="物资照片" center>
|
<van-field label="物资照片" center>
|
||||||
<template #input>
|
<template #input>
|
||||||
<van-uploader
|
<van-uploader v-model="fileList" @delete="handleDelete" name="photos" :file-list="fileList"
|
||||||
v-model="fileList"
|
:file-type="['image/jpeg', 'image/png']" :after-read="afterRead" multiple :max-count="6" />
|
||||||
@delete="handleDelete"
|
|
||||||
name="photos"
|
|
||||||
:file-list="fileList"
|
|
||||||
:file-type="['image/jpeg', 'image/png']"
|
|
||||||
:after-read="afterRead"
|
|
||||||
multiple
|
|
||||||
:max-count="6"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
</van-field>
|
</van-field>
|
||||||
</van-form>
|
</van-form>
|
||||||
<div
|
<div style="
|
||||||
style="
|
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
@ -197,15 +96,8 @@
|
|||||||
background: white;
|
background: white;
|
||||||
box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
|
box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
"
|
">
|
||||||
>
|
<van-button round block type="primary" native-type="submit" @click="handleSubmit">
|
||||||
<van-button
|
|
||||||
round
|
|
||||||
block
|
|
||||||
type="primary"
|
|
||||||
native-type="submit"
|
|
||||||
@click="handleSubmit"
|
|
||||||
>
|
|
||||||
保存
|
保存
|
||||||
</van-button>
|
</van-button>
|
||||||
</div>
|
</div>
|
||||||
@ -213,7 +105,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, onMounted, reactive, toRaw, watch } from "vue";
|
import { ref, onMounted, reactive, toRaw, watch } from "vue";
|
||||||
import { useRouter, useRoute } from "vue-router";
|
import { useRouter, useRoute } from "vue-router";
|
||||||
import { showToast, showLoadingToast } from "vant";
|
import { showToast, showLoadingToast } from "vant";
|
||||||
@ -278,11 +170,23 @@ const getPendingConfirmList = async () => {
|
|||||||
|
|
||||||
// 跳转到确认物资页面
|
// 跳转到确认物资页面
|
||||||
const handleConfirm = () => {
|
const handleConfirm = () => {
|
||||||
router.push({
|
if (yhzDetail.value.isManager) {
|
||||||
name: "MaterialConfirm",
|
router.push({
|
||||||
params: {
|
name: "MaterialConfirm",
|
||||||
data: encodeURIComponent(JSON.stringify(yhzDetail.value)),
|
params: {
|
||||||
},
|
data: encodeURIComponent(JSON.stringify(yhzDetail.value)),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
handleMessage();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// 弹出提示
|
||||||
|
const handleMessage = () => {
|
||||||
|
showToast({
|
||||||
|
type: "fail",
|
||||||
|
message: "您不是站长,无法确认设备",
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -465,7 +369,7 @@ const handleGetLocation = async () => {
|
|||||||
const location = await request({
|
const location = await request({
|
||||||
url: "/v3/ip",
|
url: "/v3/ip",
|
||||||
method: "get",
|
method: "get",
|
||||||
params:{
|
params: {
|
||||||
key: 'c30e9ebd414fd6a4dfcc1ba8c2060dbb'
|
key: 'c30e9ebd414fd6a4dfcc1ba8c2060dbb'
|
||||||
},
|
},
|
||||||
isThirdPartyAPI: true // 添加标识
|
isThirdPartyAPI: true // 添加标识
|
||||||
@ -561,9 +465,10 @@ const onPopupClose = () => {
|
|||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.home {
|
.home {
|
||||||
padding-top: var(--van-nav-bar-height); /* 自动匹配导航栏高度 */
|
padding-top: var(--van-nav-bar-height);
|
||||||
|
/* 自动匹配导航栏高度 */
|
||||||
}
|
}
|
||||||
|
|
||||||
.content {
|
.content {
|
||||||
@ -603,12 +508,15 @@ const onPopupClose = () => {
|
|||||||
color: white;
|
color: white;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-good {
|
.status-good {
|
||||||
background-color: #07c160;
|
background-color: #07c160;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-warning {
|
.status-warning {
|
||||||
background-color: #ff976a;
|
background-color: #ff976a;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-danger {
|
.status-danger {
|
||||||
background-color: #ee0a24;
|
background-color: #ee0a24;
|
||||||
}
|
}
|
||||||
@ -617,4 +525,3 @@ const onPopupClose = () => {
|
|||||||
padding: 16px 16px 80px 16px;
|
padding: 16px 16px 80px 16px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user