Commit 5150afd0 by zhaopanyu

zpy 修改资产管理

parent 9bb8279a
...@@ -31,7 +31,7 @@ const routes = [ ...@@ -31,7 +31,7 @@ const routes = [
children: [ children: [
{ {
path: "dd", path: "dd",
name: "dd", name: "dl",
component: () => import("../views/dd.vue"), component: () => import("../views/dd.vue"),
meta: { meta: {
requireAuth: true, requireAuth: true,
......
<template> <template>
<van-nav-bar title="设备报修" left-text="返回" left-arrow @click-left="goback"></van-nav-bar> <div class="flexBLock searchBlock"> <van-nav-bar title="设备报修" left-text="返回" left-arrow @click-left="goback"></van-nav-bar>
<van-search class="searchInput" @search="onSearch" v-model="searchKey" placeholder="请输入设备名称" /> <div class="flexBLock searchBlock">
<van-icon name="scan" @click="getCode"/> <van-search class="searchInput" @search="onSearch" v-model="searchKey" placeholder="请输入设备名称" />
</div> <van-icon name="scan" @click="getCode" />
</div>
<van-pull-refresh v-model="pullLoading" @refresh="onRefresh"> <van-pull-refresh v-model="pullLoading" @refresh="onRefresh">
<van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了" @load="getList"> <van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了" @load="getList">
<div style="position:relative;" v-for="(item,index) in list" :key="index" class="listBlock"> <div style="position:relative;" v-for="(item, index) in list" :key="index" class="listBlock">
<div>自编码:{{ item.encode }}</div> <div>自编码:{{ item.encode }}</div>
<div>设备名称:{{ item.equipmentName }}</div> <div>设备名称:{{ item.equipmentName }}</div>
<div>型号:{{item.model}}</div> <div>型号:{{ item.model }}</div>
<div>安装时间:{{ item.dateOfProduction }}</div> <div>安装时间:{{ item.dateOfProduction }}</div>
<div>地点:{{ item.place }}</div> <div>地点:{{ item.place }}</div>
<div>报修日期:{{ item.reportRepairTime }}</div> <div>报修日期:{{ item.reportRepairTime }}</div>
<div>报修人:{{ item.reportRepair }}</div> <div>报修人:{{ item.reportRepair }}</div>
<div>问题:{{ item.problem }}</div> <div>问题:{{ item.problem }}</div>
<div v-if="item.disposeState == 0" class="flexBLock btnBlock"> <div v-if="item.disposeState == 0" class="flexBLock btnBlock">
<van-button size="small" round type="primary" class="btn" @click="toDetail('修改',item.id)">修 改</van-button> <van-button size="small" round type="primary" class="btn" @click="toDetail('修改', item.id)">修 改</van-button>
<van-button size="small" round type="success" class="btn" @click="toDetail('反馈',item.id)">反 馈</van-button> <!-- <van-button size="small" round type="success" class="btn" @click="toDetail('反馈', item.id)">反 馈</van-button> -->
<van-button size="small" round type="default" class="btn" @click="toDetail('查看',item.id)">查 看</van-button> <van-button size="small" round type="default" class="btn" @click="toDetail('查看', item.id)">查 看</van-button>
<van-button size="small" round type="danger" class="btn" @click="deleteDevice(item.id)">删 除</van-button> <van-button size="small" round type="danger" class="btn" @click="deleteDevice(item.id)">删 除</van-button>
</div> </div>
<div v-if="item.disposeState == 1" > <div v-if="item.disposeState == 1">
<!-- <van-button style="margin-right: 10px" size="small" round type="success" class="btn" @click="toDetail('反馈',item.id)">反 馈</van-button>--> <!-- <van-button style="margin-right: 10px" size="small" round type="success" class="btn" @click="toDetail('反馈',item.id)">反 馈</van-button>-->
<van-button size="small" round type="default" class="btn" @click="toDetail('查看',item.id)">查 看</van-button> <van-button size="small" round type="default" class="btn" @click="toDetail('查看', item.id)">查 看</van-button>
</div> </div>
<div class="state"> <div class="state">
<div v-if="item.repairState == 0 && item.disposeState == 1" class="fixed">已处理-已维修</div> <div v-if="item.repairState == 0 && item.disposeState == 1" class="fixed">已处理-已维修</div>
<div v-if="item.repairState == 1 && item.disposeState == 1" class="unable">已处理-已维修</div> <div v-if="item.repairState == 1 && item.disposeState == 1" class="unable">已处理-已维修</div>
</div> </div>
</div> </div>
</van-list> </van-list>
...@@ -34,17 +35,17 @@ ...@@ -34,17 +35,17 @@
</template> </template>
<script setup> <script setup>
import { getDeviceList,deletEuipemnt } from "@/service/schoolProperty" import { getDeviceList, deletEuipemnt } from "@/service/schoolProperty"
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import {onMounted, ref} from "vue"; import { onMounted, ref } from "vue";
import {useStore} from "vuex"; import { useStore } from "vuex";
import {Toast} from "vant"; import { Toast } from "vant";
import {scanCodeFun} from "../../../utils/scanCode"; import { scanCodeFun } from "../../../utils/scanCode";
const router = useRouter(); const router = useRouter();
const store = useStore(); const store = useStore();
const id = store.state.userInfo.userId; const id = store.state.userInfo.userId;
console.log('id',id) console.log('id', id)
const rolesArr = store.state.userInfo.roles; const rolesArr = store.state.userInfo.roles;
let searchKey = ref('') let searchKey = ref('')
const loading = ref(false) const loading = ref(false)
...@@ -53,7 +54,7 @@ const pullLoading = ref(false); ...@@ -53,7 +54,7 @@ const pullLoading = ref(false);
const finished = ref(false); const finished = ref(false);
const equipmentName = ref('') const equipmentName = ref('')
onMounted( () => { onMounted(() => {
}); });
//获取列表数据 //获取列表数据
...@@ -63,13 +64,13 @@ const getList = async () => { ...@@ -63,13 +64,13 @@ const getList = async () => {
// pageNum.value = 0; // pageNum.value = 0;
pullLoading.value = false; pullLoading.value = false;
} }
let result = await getDeviceList(id,equipmentName.value) let result = await getDeviceList(id, equipmentName.value)
console.log('result',result) console.log('result', result)
if(result.code == 200){ if (result.code == 200) {
loading.value = false; loading.value = false;
list.value = result.data list.value = result.data
finished.value = true finished.value = true
}else{ } else {
Toast("获取信息失败!"); Toast("获取信息失败!");
finished.value = true; finished.value = true;
loading.value = false; loading.value = false;
...@@ -77,14 +78,14 @@ const getList = async () => { ...@@ -77,14 +78,14 @@ const getList = async () => {
} }
} }
//搜索 //搜索
const onSearch = async (val) =>{ const onSearch = async (val) => {
list.value = []; list.value = [];
loading.value = true; loading.value = true;
finished.value = false; finished.value = false;
equipmentName.value = val equipmentName.value = val
let searchResult = await getDeviceList(id,equipmentName.value); let searchResult = await getDeviceList(id, equipmentName.value);
console.log('searchResult',searchResult) console.log('searchResult', searchResult)
if(searchResult.code == 200){ if (searchResult.code == 200) {
loading.value = false; loading.value = false;
list.value = searchResult.data list.value = searchResult.data
finished.value = true finished.value = true
...@@ -106,25 +107,25 @@ const getCode = () => { ...@@ -106,25 +107,25 @@ const getCode = () => {
// }) // })
} }
//详情按钮 //详情按钮
const toDetail = (name,id) => { const toDetail = (name, id) => {
console.log('id',id) console.log('id', id)
router.push({ router.push({
path:"/schoolProperty/device/info", path: "/schoolProperty/device/info",
query:{ query: {
name:name, name: name,
id:id id: id
} }
}) })
} }
//删除按钮 //删除按钮
const deleteDevice = async (id) => { const deleteDevice = async (id) => {
console.log('id',id) console.log('id', id)
let result = await deletEuipemnt(id) let result = await deletEuipemnt(id)
if(result.code == 200){ if (result.code == 200) {
Toast.success("删除成功"); Toast.success("删除成功");
getList() getList()
} }
console.log('result',result) console.log('result', result)
} }
//返回上一页 //返回上一页
const goback = () => { const goback = () => {
...@@ -141,26 +142,42 @@ const onRefresh = () => { ...@@ -141,26 +142,42 @@ const onRefresh = () => {
</script> </script>
<style scoped> <style scoped>
.listBlock .flexBLock {
justify-content: start;
display: flex;
gap: 10px;
}
.btnBlock { .btnBlock {
flex-wrap: wrap; flex-wrap: wrap;
} }
.btn { .btn {
width: 75px; width: 75px;
margin-top: 10px; margin-top: 10px;
} }
.state{
position:absolute; /* 自定义 van-button 的样式,减小内边距 */
.van-button {
padding: 4px 8px;
/* 根据实际情况调整内边距 */
}
.state {
position: absolute;
top: 0; top: 0;
right: 0; right: 0;
} }
.fixed{
.fixed {
background: #07c160; background: #07c160;
color: #FFFFFF; color: #FFFFFF;
border-radius: 5px 10px; border-radius: 5px 10px;
width: 100px; width: 100px;
text-align: center; text-align: center;
} }
.unable{
.unable {
background: #1989fa; background: #1989fa;
color: #FFFFFF; color: #FFFFFF;
border-radius: 5px 10px; border-radius: 5px 10px;
......
...@@ -4,157 +4,57 @@ ...@@ -4,157 +4,57 @@
<!-- <div class="title">报修台账新增</div>--> <!-- <div class="title">报修台账新增</div>-->
<van-form class="formBlock" label-align="right" label-width="60px"> <van-form class="formBlock" label-align="right" label-width="60px">
<van-cell-group inset> <van-cell-group inset>
<van-field <van-field readonly v-model="fixForm.encode" name="自编码" label="自编码" placeholder="自编码"
readonly :rules="[{ required: true, message: '请填写自编码' }]" />
v-model="fixForm.encode" <van-field v-if="name == '反馈' ? false : true" readonly v-model="fixForm.equipmentName" name="设备名称" label="设备名称"
name="自编码" placeholder="设备名称" :rules="[{ required: true, message: '请填写设备名称' }]" />
label="自编码" <van-field v-if="name == '反馈' ? false : true" readonly v-model="fixForm.model" name="型号" label="型号"
placeholder="自编码" placeholder="型号" :rules="[{ required: true, message: '请填写设备型号' }]" />
:rules="[{ required: true, message: '请填写自编码' }]" <van-field v-if="name == '反馈' ? false : true" readonly v-model="fixForm.dateOfProduction" name="安装时间" label="安装时间"
/> placeholder="安装时间" :rules="[{ required: true, message: '请填写安装时间' }]" />
<van-field <van-field v-if="name == '反馈' ? false : true" :readonly="name == '查看' ? true : false" v-model="fixForm.place"
v-if="name == '反馈' ? false : true" name="地点" label="地点" placeholder="地点" :rules="[{ required: true, message: '请填写地点' }]" />
readonly <van-field v-if="name == '反馈' ? false : true" v-model="fixForm.reportRepairTime" readonly name="calendar"
v-model="fixForm.equipmentName" label="报修时间" placeholder="请填写报修时间" :rules="[{ required: true, message: '请填写报修时间' }]" />
name="设备名称" <van-field v-if="name == '反馈' ? false : true" readonly v-model="fixForm.reportRepair" name="报修人" label="报修人"
label="设备名称" placeholder="报修人" :rules="[{ required: true, message: '请填写报修人' }]" />
placeholder="设备名称" <van-field v-if="name == '反馈' ? false : true" v-model="fixForm.problem" name="问题" label="问题" placeholder="问题"
:rules="[{ required: true, message: '请填写设备名称' }]" :rules="[{ required: true, message: '请填写问题' }]" />
/> <div v-if="name == '查看'">
<van-field <van-field v-model="fixForm.repairName" readonly label="修理人" />
v-if="name == '反馈' ? false : true"
readonly
v-model="fixForm.model"
name="型号"
label="型号"
placeholder="型号"
:rules="[{ required: true, message: '请填写设备型号' }]"
/>
<van-field
v-if="name == '反馈' ? false : true"
readonly
v-model="fixForm.dateOfProduction"
name="安装时间"
label="安装时间"
placeholder="安装时间"
:rules="[{ required: true, message: '请填写安装时间' }]"
/>
<van-field
v-if="name == '反馈' ? false : true"
:readonly="name == '查看' ? true : false"
v-model="fixForm.place"
name="地点"
label="地点"
placeholder="地点"
:rules="[{ required: true, message: '请填写地点' }]"
/>
<van-field
v-if="name == '反馈' ? false : true"
v-model="fixForm.reportRepairTime"
readonly
name="calendar"
label="报修时间"
placeholder="请填写报修时间"
:rules="[{ required: true, message: '请填写报修时间' }]"
/>
<van-field
v-if="name == '反馈' ? false : true"
readonly
v-model="fixForm.reportRepair"
name="报修人"
label="报修人"
placeholder="报修人"
:rules="[{ required: true, message: '请填写报修人' }]"
/>
<van-field
v-if="name == '反馈' ? false : true"
v-model="fixForm.problem"
name="问题"
label="问题"
placeholder="问题"
:rules="[{ required: true, message: '请填写问题' }]"
/>
<div v-if="name=='查看'">
<van-field
v-model="fixForm.repairName"
readonly
label="修理人"
/>
</div> </div>
<div v-if="name == '反馈'"> <div v-if="name == '反馈'">
<van-field <van-field v-if="name == '反馈' || name == '查看' ? true : false" v-model="fixForm.repairName" is-link readonly
v-if="name == '反馈' || name =='查看' ? true : false " name="picker" label="修理人" placeholder="请选择修理人" @click="showPicker = true"
v-model="fixForm.repairName" :rules="[{ required: true, message: '请选择修理人' }]" />
is-link
readonly
name="picker"
label="修理人"
placeholder="请选择修理人"
@click="showPicker = true"
:rules="[{ required: true, message: '请选择修理人' }]"
/>
<van-popup v-model:show="showPicker" position="bottom"> <van-popup v-model:show="showPicker" position="bottom">
<van-picker <van-picker :columns="columns" @confirm="onConfirm" @cancel="showPicker = false" />
:columns="columns"
@confirm="onConfirm"
@cancel="showPicker = false"
/>
</van-popup> </van-popup>
</div> </div>
<van-field <van-field v-if="name == '反馈' || name == '查看' ? true : false" v-model="fixForm.repairTime" readonly name="修理时间"
v-if="name == '反馈' || name =='查看' ? true : false " label="修理时间" placeholder="修理时间" :rules="[{ required: true, message: '请填写修理时间' }]" />
v-model="fixForm.repairTime"
readonly
name="修理时间"
label="修理时间"
placeholder="修理时间"
:rules="[{ required: true, message: '请填写修理时间' }]"
/>
<div v-if="name == '反馈'"> <div v-if="name == '反馈'">
<van-field <van-field v-if="name == '反馈' || name == '查看' ? true : false" v-model="fixForm.repairStateName" is-link readonly
v-if="name == '反馈' || name =='查看' ? true : false " name="picker" label="维修结果" placeholder="维修结果" @click="showState = true"
v-model="fixForm.repairStateName" :rules="[{ required: true, message: '请填写维修结果' }]" />
is-link
readonly
name="picker"
label="维修结果"
placeholder="维修结果"
@click="showState = true"
:rules="[{ required: true, message: '请填写维修结果' }]"
/>
<van-popup v-model:show="showState" position="bottom"> <van-popup v-model:show="showState" position="bottom">
<van-picker <van-picker :columns="stateColumns" @confirm="repairState" @cancel="showState = false" />
:columns="stateColumns"
@confirm="repairState"
@cancel="showState = false"
/>
</van-popup> </van-popup>
</div> </div>
<div v-if="name == '查看'"> <div v-if="name == '查看'">
<van-field <van-field v-model="fixForm.repairStateName" readonly label="维修结果" />
v-model="fixForm.repairStateName"
readonly
label="维修结果"
/>
</div> </div>
<van-field <van-field v-if="name == '查看' ? true : false" readonly v-model="fixForm.remark" name="备注" label="备注"
v-if=" name =='查看' ? true : false " placeholder="备注" :rules="[{ required: true, message: '请填写维修备注' }]" />
readonly
v-model="fixForm.remark"
name="备注"
label="备注"
placeholder="备注"
:rules="[{ required: true, message: '请填写维修备注' }]"
/>
<van-field v-if="name == '反馈' ? true : false" name="rate" label="评分"> <van-field v-if="name == '反馈' ? true : false" name="rate" label="评分">
<template #input> <template #input>
<van-rate v-model="evaluate"/> <van-rate v-model="evaluate" />
</template> </template>
</van-field> </van-field>
</van-cell-group> </van-cell-group>
<div v-if="name=='反馈'" style="margin: 30px; display: flex;justify-content: center"> <div v-if="name == '反馈'" style="margin: 30px; display: flex;justify-content: center">
<van-button round type="primary" size="small" style="width: 80px;" @click="feedBack"> <van-button round type="primary" size="small" style="width: 80px;" @click="feedBack">
确 定 确 定
</van-button> </van-button>
...@@ -162,12 +62,12 @@ ...@@ -162,12 +62,12 @@
取 消 取 消
</van-button> </van-button>
</div> </div>
<div v-if="name=='查看'" style="margin: 30px; display: flex;justify-content: center"> <div v-if="name == '查看'" style="margin: 30px; display: flex;justify-content: center">
<van-button round type="primary" size="small" style="width: 80px;margin-left: 20px;" @click="cancel"> <van-button round type="primary" size="small" style="width: 80px;margin-left: 20px;" @click="cancel">
关 闭 关 闭
</van-button> </van-button>
</div> </div>
<div v-if="name=='修改' || name =='新增'" style="margin: 30px; display: flex;justify-content: center"> <div v-if="name == '修改' || name == '新增'" style="margin: 30px; display: flex;justify-content: center">
<van-button round type="primary" size="small" style="width: 80px;" @click="onSubmit"> <van-button round type="primary" size="small" style="width: 80px;" @click="onSubmit">
点击报修 点击报修
</van-button> </van-button>
...@@ -189,11 +89,11 @@ import { ...@@ -189,11 +89,11 @@ import {
submitFeedback, submitFeedback,
scanEquipmentInfo scanEquipmentInfo
} from "@/service/schoolProperty" } from "@/service/schoolProperty"
import {formatDatetime} from "@/utils/time.js" import { formatDatetime } from "@/utils/time.js"
import {useRoute, useRouter} from "vue-router"; import { useRoute, useRouter } from "vue-router";
import {ref, onMounted, reactive} from "vue"; import { ref, onMounted, reactive } from "vue";
import {useStore} from "vuex"; import { useStore } from "vuex";
import {Dialog, Toast} from "vant"; import { Dialog, Toast } from "vant";
const router = useRouter(); const router = useRouter();
const route = useRoute(); const route = useRoute();
...@@ -203,6 +103,7 @@ const userName = store.state.userInfo.teacherName ...@@ -203,6 +103,7 @@ const userName = store.state.userInfo.teacherName
const userId = store.state.userInfo.userId const userId = store.state.userInfo.userId
const title = ref(""); const title = ref("");
const name = route.query.name; const name = route.query.name;
console.log(route.query.name, 1111111)
const id = route.query.id; const id = route.query.id;
const encode = route.query.encode; const encode = route.query.encode;
const fixForm = reactive({ const fixForm = reactive({
...@@ -338,7 +239,7 @@ const onSubmit = async () => { ...@@ -338,7 +239,7 @@ const onSubmit = async () => {
reportRepairId: fixForm.reportRepairId, reportRepairId: fixForm.reportRepairId,
reportRepair: fixForm.reportRepair, reportRepair: fixForm.reportRepair,
problem: fixForm.problem, problem: fixForm.problem,
place:fixForm.place place: fixForm.place
} }
console.log('params', params) console.log('params', params)
let result = await editDevice(params) let result = await editDevice(params)
...@@ -357,7 +258,7 @@ const onSubmit = async () => { ...@@ -357,7 +258,7 @@ const onSubmit = async () => {
reportRepairId: userId, reportRepairId: userId,
reportRepair: fixForm.reportRepair, reportRepair: fixForm.reportRepair,
problem: fixForm.problem, problem: fixForm.problem,
place:fixForm.place, place: fixForm.place,
} }
console.log('params', params) console.log('params', params)
...@@ -380,7 +281,7 @@ const feedBack = async () => { ...@@ -380,7 +281,7 @@ const feedBack = async () => {
repairState: fixForm.repairState, repairState: fixForm.repairState,
repairPhone: fixForm.repairPhone, repairPhone: fixForm.repairPhone,
repairTime: fixForm.repairTime, repairTime: fixForm.repairTime,
disposeState:'1' disposeState: '1'
} }
console.log('params', params) console.log('params', params)
let result = await submitFeedback(params) let result = await submitFeedback(params)
...@@ -401,6 +302,10 @@ const goback = () => { ...@@ -401,6 +302,10 @@ const goback = () => {
</script> </script>
<style scoped> <style scoped>
.btnBlock {
flex-wrap: wrap;
}
.card { .card {
margin: 10px; margin: 10px;
border: 1px solid silver; border: 1px solid silver;
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
</div> </div>
<van-pull-refresh v-model="pullLoading" @refresh="onRefresh"> <van-pull-refresh v-model="pullLoading" @refresh="onRefresh">
<van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了" @load="getList"> <van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了" @load="getList">
<div style="position:relative;" v-for="(item,index) in list" :key="index" class="listBlock" @click="toDetail(item)"> <div style="position:relative;" v-for="(item,index) in list" :key="index" class="listBlock" >
<div>自编码:{{ item.encode }}</div> <div>自编码:{{ item.encode }}</div>
<div>设备名称:{{ item.equipmentName }}</div> <div>设备名称:{{ item.equipmentName }}</div>
<div>修理人:{{ item.repairName }}</div> <div>修理人:{{ item.repairName }}</div>
...@@ -21,6 +21,9 @@ ...@@ -21,6 +21,9 @@
<div v-if="item.disposeState == '1'" class="fixed">已完成</div> <div v-if="item.disposeState == '1'" class="fixed">已完成</div>
<div v-if="item.disposeState == '0'" class="unable">待维修</div> <div v-if="item.disposeState == '0'" class="unable">待维修</div>
</div> </div>
<div class="flexBLock btnBlock">
<van-button size="small" round type="success" class="btn" @click="toDetails('反馈', item.id)">反 馈</van-button>
</div>
</div> </div>
</van-list> </van-list>
</van-pull-refresh> </van-pull-refresh>
...@@ -129,16 +132,27 @@ const getList = async () => { ...@@ -129,16 +132,27 @@ const getList = async () => {
// }) // })
// } // }
//详情按钮 //详情按钮
const toDetail = (item) => { // const toDetail = (item) => {
console.log('item',item) // console.log('item',item)
// router.push({
// path:"/schoolProperty/equipmentFix/equipmentFixDetail",
// query:{
// id:item.id
// }
// })
// }
//反馈按钮
const toDetails = (name, id) => {
console.log('id', id,name)
router.push({ router.push({
path:"/schoolProperty/equipmentFix/equipmentFixDetail", path: "/schoolProperty/device/info",
query:{ query: {
id:item.id name: name,
id: id
} }
}) })
} }
//返回上一页 //返回上一页
const goback = () => { const goback = () => {
router.back(); router.back();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment