borrow.vue 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406
  1. <template>
  2. <view class="home">
  3. <view class="detail-area">
  4. <view class="layout-row">
  5. <u-row
  6. justify="space-between"
  7. gutter="10">
  8. <u-col span="4">
  9. <view class="demo-layout">
  10. 资产编号
  11. </view>
  12. </u-col>
  13. <u-col span="8" >
  14. <view class="demo-layout">{{assetObj.number?assetObj.number:""}}</view>
  15. </u-col>
  16. </u-row>
  17. </view>
  18. <view class="layout-row">
  19. <u-row
  20. justify="space-between"
  21. gutter="10">
  22. <u-col span="4">
  23. <view class="demo-layout">资产名称</view>
  24. </u-col>
  25. <u-col span="8">
  26. <view class="demo-layout">{{assetObj.name?assetObj.name:""}}</view>
  27. </u-col>
  28. </u-row>
  29. </view>
  30. <view class="layout-row">
  31. <u-row
  32. justify="space-between"
  33. gutter="10">
  34. <u-col span="4">
  35. <view class="demo-layout">资产种类</view>
  36. </u-col>
  37. <u-col span="8">
  38. <view class="demo-layout">{{assetObj.kind?assetObj.kind:""}}</view>
  39. </u-col>
  40. </u-row>
  41. </view>
  42. <view class="layout-row">
  43. <u-row
  44. justify="space-between"
  45. gutter="10">
  46. <u-col span="4">
  47. <view class="demo-layout">资产分类</view>
  48. </u-col>
  49. <u-col span="8">
  50. <view class="demo-layout">{{assetObj.categoryNumber?assetObj.categoryNumber:""}}</view>
  51. </u-col>
  52. </u-row>
  53. </view>
  54. <view class="layout-row">
  55. <u-row
  56. justify="space-between"
  57. gutter="10">
  58. <u-col span="4">
  59. <view class="demo-layout">使用部门</view>
  60. </u-col>
  61. <u-col span="8">
  62. <view class="demo-layout">{{assetObj.deptName?assetObj.deptName:""}}</view>
  63. </u-col>
  64. </u-row>
  65. </view>
  66. <view class="layout-row">
  67. <u-row
  68. justify="space-between"
  69. gutter="10">
  70. <u-col span="4">
  71. <view class="demo-layout">资产原值(元)</view>
  72. </u-col>
  73. <u-col span="8">
  74. <view class="demo-layout">{{assetObj.amount?assetObj.amount:""}}</view>
  75. </u-col>
  76. </u-row>
  77. </view>
  78. <view class="layout-row">
  79. <u-row
  80. justify="space-between"
  81. gutter="10">
  82. <u-col span="4">
  83. <view class="demo-layout">数量</view>
  84. </u-col>
  85. <u-col span="8">
  86. <view class="demo-layout">{{assetObj.quantity?assetObj.quantity:""}}</view>
  87. </u-col>
  88. </u-row>
  89. </view>
  90. <view class="layout-row">
  91. <u-row
  92. justify="space-between"
  93. gutter="10">
  94. <u-col span="4">
  95. <view class="demo-layout">存放地点</view>
  96. </u-col>
  97. <u-col span="8">
  98. <view class="demo-layout">{{assetObj.placeName?assetObj.placeName:""}}</view>
  99. </u-col>
  100. </u-row>
  101. </view>
  102. <view class="layout-row">
  103. <u-row
  104. justify="space-between"
  105. gutter="10">
  106. <u-col span="4">
  107. <view class="demo-layout">登记人</view>
  108. </u-col>
  109. <u-col span="8">
  110. <view class="demo-layout">{{assetObj.registrant?assetObj.registrant:""}}</view>
  111. </u-col>
  112. </u-row>
  113. </view>
  114. <view class="layout-row">
  115. <u-row
  116. justify="space-between"
  117. gutter="10">
  118. <u-col span="4">
  119. <view class="demo-layout">取得日期</view>
  120. </u-col>
  121. <u-col span="8">
  122. <view class="demo-layout">{{assetObj.buildDate?assetObj.buildDate:""}}</view>
  123. </u-col>
  124. </u-row>
  125. </view>
  126. <view class="layout-row">
  127. <u-row
  128. justify="space-between"
  129. gutter="10">
  130. <u-col span="4">
  131. <view class="demo-layout">资产用途</view>
  132. </u-col>
  133. <u-col span="8">
  134. <view class="demo-layout">{{assetObj.purpose?assetObj.purpose:""}}</view>
  135. </u-col>
  136. </u-row>
  137. </view>
  138. <view class="layout-row">
  139. <u-row
  140. justify="space-between"
  141. gutter="10">
  142. <u-col span="4">
  143. <view class="demo-layout">规格型号</view>
  144. </u-col>
  145. <u-col span="8">
  146. <view class="demo-layout">{{assetObj.specificationsModel?assetObj.specificationsModel:""}}</view>
  147. </u-col>
  148. </u-row>
  149. </view>
  150. </view>
  151. <view class="borrow-date" v-if="assetObj.borrowStatus?assetObj.borrowStatus=='可借出'?true:false:false">
  152. <u--form
  153. labelPosition="left"
  154. :model="form"
  155. ref="Form1"
  156. :labelWidth="110"
  157. labelAlign="left">
  158. <u-form-item
  159. label="借用地点"
  160. prop="borrowPlaceName"
  161. borderBottom>
  162. <text @click="showPlace" style="font-size: 30rpx;width: 100%;height: 100%;">{{form.borrowPlaceName}}</text>
  163. <u-picker
  164. :show="placeShow"
  165. :columns="placeList"
  166. title="请选择地点"
  167. keyName="name"
  168. @cancel="placeShow = false"
  169. @confirm="selectPlace"></u-picker>
  170. </u-form-item>
  171. <u-form-item
  172. label="联系电话"
  173. prop="tel"
  174. borderBottom>
  175. <u--input
  176. v-model="form.tel"
  177. border="none" placeholder="请输入联系电话">
  178. </u--input>
  179. </u-form-item>
  180. <u-form-item
  181. label="借用日期"
  182. prop="borrowDate"
  183. borderBottom>
  184. <text @click="showBor" style="font-size: 30rpx;">{{form.borrowDate}}</text>
  185. <u-datetime-picker
  186. :show="borrowShow"
  187. v-model="borrowValue"
  188. mode="datetime"
  189. @confirm="changeDate"
  190. @cancel="borrowShow = false"
  191. ></u-datetime-picker>
  192. </u-form-item>
  193. <u-form-item
  194. label="归还日期"
  195. prop="returnDate"
  196. borderBottom>
  197. <text
  198. @click="showRet"
  199. style="font-size: 30rpx;">
  200. {{form.returnDate}}
  201. </text>
  202. <u-datetime-picker
  203. :show="returnShow"
  204. v-model="returnValue"
  205. mode="datetime"
  206. @confirm="returnChange"
  207. @cancel="returnShow = false"
  208. ></u-datetime-picker>
  209. </u-form-item>
  210. <u-form-item
  211. label="备注"
  212. prop="remark"
  213. borderBottom>
  214. <u--input
  215. v-model="form.remark"
  216. border="none"
  217. placeholder="请输入备注"
  218. >
  219. </u--input>
  220. </u-form-item>
  221. </u--form>
  222. </view>
  223. <view class="btn-area">
  224. <u-button text="借用" color="#000" v-if="assetObj.borrowStatus?assetObj.borrowStatus=='可借出'?true:false:false" @click="toBorrowAsset">借用</u-button>
  225. <u-button text="归还" color="#000" v-else-if="assetObj.borrowStatus?assetObj.borrowStatus=='可借出'?false:true:true">归还</u-button>
  226. </view>
  227. <view class="repair-btn" @click="toRepeat">
  228. <i class="iconfont icon-a-shezhi2"></i>
  229. </view>
  230. </view>
  231. </template>
  232. <script>
  233. import { searchAsset,getAllPlace,borrowAsset } from "@/api/asset.js"
  234. import cache from "@/utils/storage.js"
  235. import { dateToString } from "@/common/js/core.js"
  236. export default {
  237. data() {
  238. return {
  239. borrowShow:false,
  240. borrowValue:Number(new Date()),
  241. returnShow:false,
  242. returnValue:Number(new Date()),
  243. status:1,
  244. assetObj:{},
  245. form:{
  246. borrowDate:dateToString(new Date()),
  247. returnDate:dateToString(new Date()),
  248. remark:"",
  249. tel:cache.session.getJSON("phone"),
  250. borrowPlaceName:"",
  251. assetBarCode:""
  252. },
  253. placeShow: false,
  254. placeList: []
  255. };
  256. },
  257. onLoad:function(option){
  258. this.form.assetBarCode = option.number
  259. this.initAssets(option.number)
  260. this.init()
  261. },
  262. methods:{
  263. showBor(){
  264. this.borrowShow = true
  265. },
  266. showRet(){
  267. this.returnShow = true
  268. },
  269. handleDate(fDate,rDate){
  270. let f = new Date(fDate)
  271. let r = new Date(rDate)
  272. if (f < r) {
  273. return true
  274. } else {
  275. uni.showToast({
  276. icon:"none",
  277. title:"借用日期应小于归还日期"
  278. })
  279. return false
  280. }
  281. },
  282. changeDate(val){
  283. let date = dateToString(val.value);
  284. this.form.borrowDate = date
  285. this.borrowShow = false
  286. },
  287. returnChange(val){
  288. let date = dateToString(val.value);
  289. if(this.handleDate(this.form.borrowDate,date)){
  290. this.form.returnDate = date
  291. this.returnShow = false
  292. }
  293. },
  294. init(){
  295. this.placeList = []
  296. getAllPlace().then(res=>{
  297. if(res.length!==0){
  298. this.placeList.push(res)
  299. this.form.borrowPlaceName = res[0].name?res[0].name:"请选择地点"
  300. }
  301. })
  302. this.form.borrowDate = dateToString(new Date())
  303. this.form.returnDate = dateToString(new Date())
  304. this.form.tel = cache.session.getJSON("phone")
  305. },
  306. initAssets(data){
  307. searchAsset({barCode: data}).then(res=>{
  308. console.log(res)
  309. this.assetObj = res
  310. })
  311. },
  312. showPlace(){
  313. this.placeShow = true
  314. },
  315. selectPlace(e){
  316. this.form.borrowPlaceName = e.value[0].name
  317. this.placeShow = false
  318. },
  319. //点去维修
  320. toRepeat(){
  321. console.log("111233")
  322. },
  323. toBorrowAsset(){
  324. if(this.form.tel===""){
  325. uni.showToast({
  326. icon:"none",
  327. title:"请输入正确的手机号"
  328. })
  329. return;
  330. }
  331. if(!this.handleDate(this.form.borrowDate,this.form.returnDate)){
  332. return;
  333. }
  334. borrowAsset(this.form).then(res=>{
  335. uni.showToast({
  336. icon:"none",
  337. title:"借用成功!"
  338. })
  339. this.initAssets(res.assetBarCode)
  340. })
  341. }
  342. }
  343. }
  344. </script>
  345. <style lang="scss" scoped>
  346. .home{
  347. padding: 20rpx;
  348. display: flex;
  349. flex-direction: column;
  350. // height: 100vh;
  351. box-sizing: border-box;
  352. }
  353. .detail-area{
  354. height: 72%;
  355. border: 1px solid $uni-border-black;
  356. padding: 0 20rpx;
  357. overflow-y: scroll;
  358. }
  359. .borrow-date{
  360. border: 1px solid $uni-border-black;
  361. padding: 0 20rpx;
  362. margin-top: 20rpx;
  363. /deep/.u-picker__view__column__item{
  364. text-align: center;
  365. }
  366. /deep/.u-form-item__body__right__content__slot{
  367. height: 100%;
  368. }
  369. }
  370. .layout-row{
  371. border-top: 1rpx solid #d6d7d9;
  372. padding: 20rpx 0 ;
  373. }
  374. .demo-layout {
  375. height: 25px;
  376. }
  377. .btn-area{
  378. margin-top: 20rpx;
  379. padding: 0 250rpx;
  380. }
  381. .repair-btn{
  382. width: 80rpx;
  383. height: 80rpx;
  384. color: rgba(80, 80, 80, 1);
  385. border-radius: 50%;
  386. line-height: 150%;
  387. box-shadow: 0px 1px 1px 0px rgba(0, 0, 0, 0.5);
  388. display: flex;
  389. align-items: center;
  390. justify-content: center;
  391. text-align: center;
  392. flex-direction: column;
  393. font-size: 36rpx;
  394. position: fixed;
  395. bottom: 20rpx;
  396. right: 20rpx;
  397. background: #ffffff;
  398. z-index:100;
  399. .iconfont{
  400. font-size: 42rpx;
  401. }
  402. }
  403. </style>