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