Commit 3d10c67c by peijy

8.15 校产管理接口

parent e744037d
...@@ -14,7 +14,7 @@ export function getWxConfig(url) { ...@@ -14,7 +14,7 @@ export function getWxConfig(url) {
//个人借用记录列表 //个人借用记录列表
export function getBorrowList(borrowById) { export function getBorrowList(borrowById) {
return axios.post(`wx/equipment/getMyBorrowList/${borrowById}` ); return axios.get(`wx/equipment/getMyBorrowList/${borrowById}` );
} }
//扫码借用获取设备基本信息 //扫码借用获取设备基本信息
...@@ -34,10 +34,81 @@ export function checkBorrowDetail(id) { ...@@ -34,10 +34,81 @@ export function checkBorrowDetail(id) {
return axios.get('wx/equipment/byCirculation/' + id ); return axios.get('wx/equipment/byCirculation/' + id );
} }
/********** 物品归还 ***********/ /********** 物品归还(管理员) ***********/
//管理员物品列表查看
export function getEquipmentList(managerId) {
return axios.post(`wx/equipment/getMyBorrowList/${managerId}` );
}
//借用物品记录详情查看-克隆
export function checkEquipmentDetail(id) {
return axios.get(`wx/equipment/byCirculation/${id}` );
}
//物品归还
export function returnEquipment(data) {
return axios.put('/wx/equipment/returnDevice' ,{
params:data
}
);
}
/********** 物品领用 ***********/ /********** 物品领用 ***********/
//领用列表
export function getUseList(recipientById) {
return axios.get(`wx/equipment/getUseList/${recipientById}` );
}
//新增领用
export function addUse(data) {
return axios.post('wx/equipment/addUsedevice' , {
...data
} )
}
//领用记录详情
export function useDeatil(id) {
return axios.post(`wx/equipment/getUseById/${id}`);
}
/********** 设备报修 ***********/ /********** 设备报修 ***********/
//报修个人记录列表
export function getDeviceList(reportRepairid) {
return axios.get(`wx/equipment/getMaintenanceList/${reportRepairid}`);
}
//新增报修
export function addDevice(data) {
return axios.post('wx/equipment/addMaintenance' , {
...data
} )
}
//报修记录详情
export function getDeviceDetail(id) {
return axios.post(`wx/equipment/getMaintenance/${id}` );
}
//报修记录修改
export function editDevice(data) {
return axios.put('/wx/equipment/pudateMaintenance' ,{
params:data
}
);
}
//报修反馈结果详情
export function getFeedbackDetail(id) {
return axios.get(`wx/equipment/getfeedback/${id}` );
}
// 报修结果反馈
export function submitFeedback(data) {
return axios.put('/wx/equipment/pudateMaintenance' ,{
params:data
}
);
}
...@@ -2,19 +2,27 @@ ...@@ -2,19 +2,27 @@
<van-nav-bar :title=title left-text="返回" left-arrow @click-left="goback"></van-nav-bar> <van-nav-bar :title=title left-text="返回" left-arrow @click-left="goback"></van-nav-bar>
<van-form @submit="onSubmit" class="formBlock" label-align="right" label-width="110px"> <van-form @submit="onSubmit" class="formBlock" label-align="right" label-width="110px">
<van-cell-group inset> <van-cell-group inset>
<van-field v-model="borrowForm.code" label="自编码" placeholder="请输入自编码"/> <van-field :readonly="queryId ? true : false" v-model="borrowForm.encode" label="自编码" placeholder="请输入自编码"/>
<van-field v-model="borrowForm.code" label="设备名称" placeholder="请输入设备名称"/> <van-field :readonly="queryId ? true : false" v-model="borrowForm.equipmentName" label="设备名称"
<van-field v-model="borrowForm.code" label="型号" placeholder="请输入型号"/> placeholder="请输入设备名称"/>
<van-field is-link readonly v-model="borrowForm.dateChoose" label="借用日期" @click="showPicker = true" <van-field :readonly="queryId ? true : false" v-model="borrowForm.model" label="型号" placeholder="请输入型号"/>
placeholder="请选择借用日期"/> <div v-if="queryId">
<van-calendar v-model:show="showPicker" @confirm="onConfirm" /> <van-field readonly v-model="borrowTime" label="借用日期"/>
<van-field v-model="borrowForm.code" label="借用人" placeholder="请输入借用人"/> </div>
<van-field v-model="borrowForm.code" label="用途" placeholder="请输入用途"/> <div v-else>
<van-field v-model="borrowForm.code" label="借用期限(天)" placeholder="请输入借用期限"/> <van-field is-link readonly v-model="borrowTime" label="借用日期" @click="showPicker = true"
<!-- <van-field is-link readonly v-model="dateChoose" label="归还时间" @click="showPicker = true"--> placeholder="请选择借用日期"/>
<!-- placeholder="请选择归还时间"/>--> <van-calendar :readonly="queryId ? true : false" v-model:show="showPicker" @confirm="onConfirmBorrowTime"/>
<!-- <van-calendar v-model:show="showPicker" @confirm="onConfirm" />--> </div>
<van-field v-model="borrowForm.code" label="归还时设备情况" placeholder="请输入归还时设备情况"/> <van-field :readonly="queryId ? true : false" v-model="borrowForm.borrowBy" label="借用人" placeholder="请输入借用人"/>
<van-field :readonly="queryId ? true : false" v-model="borrowForm.purpose" label="用途" placeholder="请输入用途"/>
<div v-if="queryId">
<van-field readonly v-model="returnTime" label="归还时间"/>
<van-field readonly v-model="borrowForm.returnEquipmentCondition" label="归还时设备情况"/>
</div>
<van-field :readonly="queryId ? true : false" v-model="borrowForm.deadline" label="借用期限(天)"
placeholder="请输入借用期限"/>
</van-cell-group> </van-cell-group>
<div> <div>
<van-button class="sureBtn" round block type="primary" native-type="submit">确 定</van-button> <van-button class="sureBtn" round block type="primary" native-type="submit">确 定</van-button>
...@@ -23,35 +31,69 @@ ...@@ -23,35 +31,69 @@
</template> </template>
<script setup> <script setup>
import { reactive, ref } from "vue"; import {checkBorrowDetail} from "@/service/schoolProperty"
import {reactive, ref, onMounted} from "vue";
import {useRoute, useRouter} from "vue-router";
const router = useRouter();
const route = useRoute();
const queryId = route.query.id;
let title = ref('') // 页面标题
import { useRouter } from "vue-router"; let borrowForm = reactive({ // 表单数据
const router = useRouter(); encode: '', //自编码
equipmentName: '', //设备名称
model: '', //型号
// borrowTime:'', // 借用日期
borrowBy: '', //借用人
purpose: '', //用途
// deadline:'', //借用期限(天)
returnTime: '', //归还日期
returnEquipmentCondition: '', //归还时设备情况
})
let borrowTime = ref('') // 借用日期
let returnTime = ref('') // 归还日期
let title = ref('物品借用新增') // 页面标题 let showPicker = ref(false) //是否显示日历选择-借用
let borrowForm = reactive({ // 表单数据
code:'',
dateChoose:'',
})
let dateChoose = ref('') // 借用日期
let showPicker = ref(false) //是否显示日历选择 onMounted(async () => {
const onConfirm = (date) => { if (queryId) {
dateChoose.value = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}` let result = await checkBorrowDetail(queryId)
borrowForm.dateChoose = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}` console.log('result', result)
// console.log("borrowForm.dateChoose",borrowForm.dateChoose) title.value = '物品借用查看'
showPicker.value = false; Object.assign(borrowForm, result.data)
}; borrowTime.value = result.data.borrowTime
returnTime.value = result.data.returnTime
} else {
title.value = '物品借用新增'
}
});
//借用日期确认
const onConfirmBorrowTime = (date) => {
borrowTime.value = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`
// returnTime.value = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`
showPicker.value = false;
console.log('date', date)
console.log('borrowTime.value', borrowTime.value)
};
//返回上一页 //返回上一页
const goback = () => { const goback = () => {
router.back();
};
//表单提交
const onSubmit = () => {
if (queryId) {
router.back(); router.back();
};
//表单提交 } else {
const onSubmit = () => {
} }
}
</script> </script>
<style scoped> <style scoped>
...@@ -59,6 +101,7 @@ ...@@ -59,6 +101,7 @@
margin: 30px auto; margin: 30px auto;
width: 80%; width: 80%;
} }
.van-cell-group--inset { .van-cell-group--inset {
margin: 0px; margin: 0px;
} }
......
...@@ -6,23 +6,23 @@ ...@@ -6,23 +6,23 @@
</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 v-for="(item,index) in list" :key="index" class="listBlock" @click="toDetailPage"> <div v-for="(item,index) in list" :key="index" class="listBlock" @click="toDetailPage(item.id)">
<div class="flexBLock"> <div class="flexBLock">
<div> <div>
<div>型号:联想Y0079</div> <div>型号:{{item.model}}</div>
<div>自编码:202308081101</div> <div>自编码:{{item.encode}}</div>
<div>设备名称:笔记本</div> <div>设备名称:{{item.equipmentName}}</div>
<div>借用人:张蔷</div> <div>借用人:{{ item.borrowBy }}</div>
<div>借用日期:2023-08-08 12:32:30</div> <div>借用日期:{{ item.borrowTime }}</div>
<div>用途:用于课上办公</div> <div>用途:{{ item.purpose }}</div>
</div> </div>
<div class="listLeft"> <div class="listLeft">
<div>7</div> <div>{{ item.deadline }}</div>
<div>借用期限(天)</div> <div>借用期限(天)</div>
</div> </div>
</div> </div>
<div class="waitReturn">待归还</div> <div v-if="item.returnState == 0" class="waitReturn">待归还</div>
<div class="endReturn">已归还</div> <div v-if="item.returnState == 1" class="endReturn">已归还</div>
</div> </div>
</van-list> </van-list>
</van-pull-refresh> </van-pull-refresh>
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<script setup> <script setup>
import { getBorrowList } from "@/service/schoolProperty" import { getBorrowList } from "@/service/schoolProperty"
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { ref } from "vue"; import {onMounted, ref} from "vue";
import { useStore } from "vuex"; import { useStore } from "vuex";
import { scanCodeFun } from "../../../utils/scanCode" import { scanCodeFun } from "../../../utils/scanCode"
...@@ -40,8 +40,7 @@ const store = useStore(); ...@@ -40,8 +40,7 @@ const store = useStore();
const id = store.state.userInfo.userId ; const id = store.state.userInfo.userId ;
let searchKey = ref('') let searchKey = ref('')
const loading = ref(false) const loading = ref(false)
const list = ref([]);
const list = ref([1,2,3,4,5]);
const pullLoading = ref(false); const pullLoading = ref(false);
const finished = ref(false); const finished = ref(false);
...@@ -51,14 +50,22 @@ const getCode = () => { ...@@ -51,14 +50,22 @@ const getCode = () => {
} }
//获取列表数据 //获取列表数据
const getList = () => { const getList = async() => {
let result = await getBorrowList(id)
console.log('result',result)
if(result.code == 200){
list.value = result.data
}
} }
//跳转详情页面 //跳转详情页面
const toDetailPage = () => { const toDetailPage = (id) => {
console.log('id',id)
router.push({ router.push({
path: "/schoolProperty/borrow/detail", path: "/schoolProperty/borrow/detail",
query: {
id:id
}
}) })
} }
......
...@@ -5,20 +5,24 @@ ...@@ -5,20 +5,24 @@
</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 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>自编码:202308081101</div> <div>自编码:{{ item.encode }}</div>
<div>设备名称:笔记本</div> <div>设备名称:{{ item.equipmentName }}</div>
<div>型号:联想Y0079</div> <div>型号:{{item.model}}}</div>
<div>投产日期:2023-08-08 12:32:30</div> <div>投产日期:{{ item.dateOfProduction }}</div>
<div>地点:教学楼603</div> <div>地点:{{ item.place }}</div>
<div>报修日期:2023-08-08 12:32:30</div> <div>报修日期:{{ item.reportRepairTime }}</div>
<div>报修人:张蔷</div> <div>报修人:{{ item.reportRepair }}</div>
<div>问题:笔记本无法打开</div> <div>问题:{{ item.problem }}</div>
<div class="flexBLock btnBlock"> <div class="flexBLock btnBlock">
<van-button size="small" round type="primary" class="btn" @click="toDetail('修改',item)">修 改</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)">反 馈</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)">查 看</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)">删 除</van-button> <van-button size="small" round type="danger" class="btn" @click="deleteDevice(item.id)">删 除</van-button>
</div>
<div class="state">
<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> </div>
</div> </div>
</van-list> </van-list>
...@@ -26,29 +30,43 @@ ...@@ -26,29 +30,43 @@
</template> </template>
<script setup> <script setup>
import { getDeviceList } from "@/service/schoolProperty"
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import {ref} from "vue"; import {onMounted, ref} from "vue";
import {useStore} from "vuex";
const router = useRouter(); const router = useRouter();
const store = useStore();
const id = store.state.userInfo.userId;
console.log('id',id)
let searchKey = ref('') let searchKey = ref('')
const loading = ref(false) const loading = ref(false)
const list = ref([1,2,3,4,5]); const list = ref([]);
const pullLoading = ref(false); const pullLoading = ref(false);
const finished = ref(false); const finished = ref(false);
onMounted( () => {
});
//获取列表数据 //获取列表数据
const getList = () => { const getList = async () => {
console.log('id',id)
let result = await getDeviceList(id)
console.log('result',result)
if(result.code == 200){
list.value = result.data
}
} }
//详情按钮 //详情按钮
const toDetail = (name,item) => { const toDetail = (name,id) => {
console.log('id',id)
router.push({ router.push({
path:"/schoolProperty/device/info", path:"/schoolProperty/device/info",
query:{ query:{
name:name, name:name,
item:item id:id
} }
}) })
} }
...@@ -75,4 +93,23 @@ const onRefresh = () => { ...@@ -75,4 +93,23 @@ const onRefresh = () => {
width: 75px; width: 75px;
margin-top: 10px; margin-top: 10px;
} }
.state{
position:absolute;
top: 0;
right: 0;
}
.fixed{
background: #07c160;
color: #FFFFFF;
border-radius: 5px 10px;
width: 100px;
text-align: center;
}
.unable{
background: #1989fa;
color: #FFFFFF;
border-radius: 5px 10px;
width: 100px;
text-align: center;
}
</style> </style>
...@@ -147,6 +147,8 @@ ...@@ -147,6 +147,8 @@
</template> </template>
<script setup> <script setup>
import { addDevice,getDeviceDetail,editDevice,getFeedbackDetail,submitFeedback } from "@/service/schoolProperty"
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";
...@@ -156,6 +158,7 @@ const route = useRoute(); ...@@ -156,6 +158,7 @@ const route = useRoute();
const store = useStore(); const store = useStore();
const title = ref(""); const title = ref("");
const name = route.query.name; const name = route.query.name;
const id = route.query.id;
const state = reactive({ const state = reactive({
fixman: '',//修理人 fixman: '',//修理人
...@@ -167,9 +170,10 @@ const onConfirm = (value) => { ...@@ -167,9 +170,10 @@ const onConfirm = (value) => {
showPicker.value = false; showPicker.value = false;
}; };
onMounted(async () => { onMounted(async () => {
console.log('route', route.query)
if (name == '修改') { if (name == '修改') {
title.value = '报修台账修改' title.value = '报修台账修改'
let editResult = await editDevice(id)
console.log('editResult',editResult)
} }
if (name == '反馈') { if (name == '反馈') {
title.value = '报修台账反馈' title.value = '报修台账反馈'
......
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
</template> </template>
<script setup> <script setup>
import { getEquipmentList } from "@/service/schoolProperty"
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { ref } from "vue"; import { ref } from "vue";
const router = useRouter(); const router = useRouter();
...@@ -43,7 +45,7 @@ const pullLoading = ref(false); ...@@ -43,7 +45,7 @@ const pullLoading = ref(false);
const finished = ref(false); const finished = ref(false);
//获取列表数据 //获取列表数据
const getList = () => { const getList = async () => {
} }
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<van-field v-model="code" label="型号" placeholder="请输入型号"/> <van-field v-model="code" label="型号" placeholder="请输入型号"/>
<van-field is-link readonly v-model="dateChoose" label="领用日期" @click="showPicker = true" <van-field is-link readonly v-model="dateChoose" label="领用日期" @click="showPicker = true"
placeholder="请选择领用日期"/> placeholder="请选择领用日期"/>
<van-calendar v-model:show="showPicker" @confirm="onConfirm" /> <van-calendar v-model:show="showPicker" @confirm="onConfirm"/>
<van-field v-model="code" label="领用人" placeholder="请输入领用人"/> <van-field v-model="code" label="领用人" placeholder="请输入领用人"/>
</van-cell-group> </van-cell-group>
<div> <div>
...@@ -17,25 +17,28 @@ ...@@ -17,25 +17,28 @@
</template> </template>
<script setup> <script setup>
import { useRouter } from "vue-router"; import { addUse, useDeatil} from "@/service/schoolProperty"
import { ref } from "vue"; import {useRouter} from "vue-router";
const router = useRouter(); import {ref} from "vue";
const code = ref('') const router = useRouter();
const dateChoose = ref('')
let showPicker = ref(false) //是否显示日历选择 const code = ref('')
const onConfirm = (date) => { const dateChoose = ref('')
dateChoose.value = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}` let showPicker = ref(false) //是否显示日历选择
showPicker.value = false; const onConfirm = (date) => {
}; dateChoose.value = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`
showPicker.value = false;
//返回上一页 };
const goback = () => {
router.back(); //返回上一页
}; const goback = () => {
router.back();
//表单提交 };
const onSubmit = ()=>{}
//表单提交
const onSubmit = () => {
}
</script> </script>
<style scoped> <style scoped>
...@@ -43,6 +46,7 @@ ...@@ -43,6 +46,7 @@
margin: 30px auto; margin: 30px auto;
width: 80%; width: 80%;
} }
.van-cell-group--inset { .van-cell-group--inset {
margin: 0px; margin: 0px;
} }
......
...@@ -9,39 +9,46 @@ ...@@ -9,39 +9,46 @@
<div v-for="(item,index) in list" :key="index" class="listBlock"> <div v-for="(item,index) in list" :key="index" class="listBlock">
<div class="flexBLock useBlock"> <div class="flexBLock useBlock">
<div> <div>
<div>型号:联想Y0079</div> <div>型号:{{ item.model }}</div>
<div>自编码:202308081101</div> <div>自编码:{{ item.encode }}</div>
<div>领用人:张蔷</div> <div>领用人:{{ item.recipientBy }}</div>
<div>设备名称:笔记本</div> <div>设备名称:{{ item.equipmentName}}</div>
</div> </div>
<div class="listLeft"> <div class="listLeft">
<div>2023-08-08</div> <div>{{ item.recipientTime.slice(0,10)}}</div>
<div>领用日期</div> <div>领用日期</div>
</div> </div>
</div> </div>
<div class="ywxBlock">已接单 — 已维修</div>
<div class="wfwxBlock">已接单 — 无法维修</div>
<div class="wjdBlock">未接单</div>
</div> </div>
</van-list> </van-list>
</van-pull-refresh> </van-pull-refresh>
</template> </template>
<script setup> <script setup>
import { getUseList } from "@/service/schoolProperty"
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import {ref} from "vue"; import {ref} from "vue";
import {useStore} from "vuex";
const router = useRouter(); const router = useRouter();
const store = useStore();
const id = store.state.userInfo.userId;
console.log('store',store.state.userInfo.userId)
let searchKey = ref('') let searchKey = ref('')
const loading = ref(false) const loading = ref(false)
const list = ref([1,2,3,4,5]); const list = ref([]);
const pullLoading = ref(false); const pullLoading = ref(false);
const finished = ref(false); const finished = ref(false);
//获取列表数据 //获取列表数据
const getList = () => { const getList = async () => {
let result = await getUseList(id);
console.log('result',result)
if(result.code == 200){
list.value = result.data
}
} }
//扫码 //扫码
......
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