李浩杰 4 سال پیش
والد
کامیت
2354b1ecfd

+ 23 - 0
app/Http/Controllers/Api/mini/DeviceNameController.php

xqd
@@ -25,4 +25,27 @@ class DeviceNameController extends BaseController
         $items = $this->model->get();
         return $this->success(['data' => $items]);
     }
+
+    public function getNamesAndSpecs(Request $request)
+    {
+        if($request->input('type') == 'drop_menu') {
+            $items = $this->model->select('name as text', 'id as value')->get();
+            $items = $items->prepend($this->transObject(['text' => '设备名称', 'value' => '']));
+            foreach ($items as $item) {
+                $specs  = Spec::where('device_name_id', $item->value)->select('name as text', 'id as value')->get();
+                $item->specs = $specs->prepend($this->transObject(['text' => '规格型号', 'value' => '']));
+            }
+            return $this->success(['data' => $items]);
+        }
+        $items = $this->model->select(['id', 'name'])->get();
+        foreach($items as $name) {
+            $name->specs = Spec::where('device_name_id', $name->id)->select(['id', 'name'])->get();
+        }
+        return $this->success(['data' => $items]);
+    }
+
+    public function transObject($items)
+    {
+        return json_decode(json_encode($items));
+    }
 }

+ 10 - 3
app/Http/Controllers/Api/mini/InnerDeviceController.php

xqd xqd
@@ -25,13 +25,20 @@ class InnerDeviceController extends BaseController
             $items = $items->prepend(collect(['text' => '设备名称', 'value' => '']));
             return $this->success(['data' => $items]);
         }
-        $items = $this->model->get();
+        $items = $this->model->with('device_name', 'spec', 'project');
+        $equal_items = ['work_point_id', 'project_id'];
+        foreach ($equal_items as $equal_item) {
+            if($request->input($equal_item)) {
+                $items = $items->where($equal_item, '=', $request->input($equal_item));
+            }
+        }
+        $items = $items->get();
         return $this->success(['data' => $items]);
     }
 
     public function search(Request $request)
     {
-        $items = $this->model->with('workPoint', 'spec', 'device', 'device_name');
+        $items = $this->model->with('workPoint', 'spec', 'device', 'device_name', 'project');
         $equal_items = ['device_id', 'device_name_id', 'spec_id'];
         foreach ($equal_items as $item) {
             if($request->input($item)) {
@@ -90,7 +97,7 @@ class InnerDeviceController extends BaseController
 
     public function detail(Request $request)
     {
-        $item = $this->model->with('workPoint', 'spec', 'device', 'device_name')->find($request->input('id'));
+        $item = $this->model->with('workPoint', 'spec', 'device', 'device_name', 'project')->find($request->input('id'));
         if(!$item) $this->error(['msg' => '未找到设备']);
         $item['status'] = Option::find($item['status']);
         return $this->success(['data' => $item]);

+ 2 - 2
app/Http/Controllers/Api/mini/OrderController.php

xqd
@@ -384,12 +384,12 @@ class OrderController extends BaseController
         return $this->error(['msg' => '操作失败']);
     }
 
-    public function changePrice(Request $request)
+    public function change(Request $request)
     {
         $order_device = OrderDevice::find($request->input('id'));
         if(!$order_device) return $this->error(['msg' => '找不到设备']);
         $order_device->update([
-            'price' => $this->transMoney($request->input('price'))
+            'quantity' => $request->input('quantity')
         ]);
         $order = $this->model->find($order_device['order_id']);
         if(!$order) return $this->error(['msg' => '找不到订单']);

+ 3 - 1
app/Http/Controllers/Api/mini/RepairDeviceController.php

xqd xqd
@@ -27,6 +27,8 @@ class RepairDeviceController extends BaseController
 //        $user = Auth::guard('mini')->user();
 
         $data = $request->only(['project_id', 'work_point_id', 'inner_device_id', 'reason', 'day', 'remark', 'money']);
+        $user = Auth::guard('mini')->user();
+        $data['user_id'] = $user ? $user->id : '';
         $data['money'] = $this->transMoney($request->input('money'));
 
         $repair = $this->model->create($data);
@@ -51,7 +53,7 @@ class RepairDeviceController extends BaseController
 
     public function get(Request $request)
     {
-        $items = $this->model->where('inner_device_id', $request->input('id'))->with('parts')->get();
+        $items = $this->model->where('inner_device_id', $request->input('id'))->with('parts', 'project', 'user')->get();
         foreach($items as $item) {
             $item->date = substr($item->created_at, 0 ,10);
         }

+ 5 - 0
app/Models/InnerDevice.php

xqd
@@ -12,6 +12,11 @@ class InnerDevice extends BaseModel
         return $this->belongsTo('App\Models\WorkPoint', 'work_point_id');
     }
 
+    public function project()
+    {
+        return $this->belongsTo('App\Models\Project', 'project_id');
+    }
+
     public function spec()
     {
         return $this->belongsTo('App\Models\Spec', 'spec_id');

+ 10 - 0
app/Models/RepairDevice.php

xqd
@@ -8,4 +8,14 @@ class RepairDevice extends BaseModel
     {
         return $this->hasMany('App\Models\Part', 'repair_device_id');
     }
+
+    public function user()
+    {
+        return $this->belongsTo('App\Models\User', 'user_id');
+    }
+
+    public function project()
+    {
+        return $this->belongsTo('App\Models\Project', 'project_id');
+    }
 }

+ 30 - 0
database/migrations/2021_01_07_092545_add_user_id_to_repair_devices.php

xqd
@@ -0,0 +1,30 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class AddUserIdToRepairDevices extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('repair_devices', function (Blueprint $table) {
+            $table->unsignedInteger('user_id')->after('id')->nullable();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        //
+    }
+}

+ 4 - 4
mini/app.json

xqd xqd xqd
@@ -1,6 +1,10 @@
 {
   "pages": [
     "pages/index/index",
+    "pages/filter/index",
+    "pages/add-inner-device/index",
+    "pages/project/index",
+    "pages/repair/index",
     "pages/data/index",
     "pages/data-center/index",
     "pages/create-order/index",
@@ -8,7 +12,6 @@
     "pages/order-inner/index",
     "pages/order/index",
     "pages/notification/index",
-    "pages/project/index",
     "pages/about/index",
     "pages/feedback/index",
     "pages/account/index",
@@ -20,9 +23,6 @@
     "pages/draft/index",
     "pages/use-record/index",
     "pages/device-inner/index",
-    "pages/repair/index",
-    "pages/filter/index",
-    "pages/add-inner-device/index",
     "pages/create-order-inner/index",
     "pages/order-detail-inner/index",
     "pages/order-detail/index",

+ 1 - 0
mini/components/inner-device-card/index.js

xqd
@@ -50,6 +50,7 @@ Component({
       })
     },
     switchChecked: function(e) {
+      if(!this.properties.showChecked) return false;
       var index = e.currentTarget.dataset.index
       this.triggerEvent('checked', {
         index

+ 8 - 9
mini/components/inner-device-card/index.wxml

xqd
@@ -1,41 +1,40 @@
 <!--components/inner-device-card/index.wxml-->
-<view class="sg-item sg-white-bg sg-pad sg-margin-bottom">
+<view class="sg-item sg-white-bg sg-pad sg-margin-bottom" bindtap="switchChecked" data-index="{{index}}">
   <view class="sg-top sg-flex sg-space-between sg-bottom-border sg-pad-bottom-sm sg-font-small sg-bold">
-    <view class="sg-name">{{item.device ? item.device.name : ''}} - {{item.device_name ? item.device_name.name : ''}}
+    <view class="sg-name">{{item.device_name ? item.device_name.name : ''}} - {{item.spec ? item.spec.name : ''}}
     </view>
     <view class="sg-status sg-flex sg-align-center" wx:if="{{showStatus}}">
       <view class="sg-dot" style="background: {{item.status ? item.status.color : ''}}"></view>
       <view class="sg-status-name">{{item.status ? item.status.name : ''}}</view>
     </view>
-    <view class="sg-status sg-flex sg-align-center sg-font-lg" wx:if="{{showChecked}}" bindtap="switchChecked" data-index="{{index}}">
+    <view class="sg-status sg-flex sg-align-center sg-font-lg" wx:if="{{showChecked}}">
       <van-icon name="passed" wx:if="{{item.checked}}" class="sg-index-color" />
       <van-icon name="circle" wx:else />
     </view>
-    <view class="sg-status sg-flex sg-align-center sg-font-lg" wx:if="{{showDelete}}" bindtap="delete" data-index="{{index}}">
+    <view class="sg-status sg-flex sg-align-center sg-font-lg" wx:if="{{showDelete}}" catchtap="delete" data-index="{{index}}">
       <van-icon name="clear" />
     </view>
-    <van-icon class="sg-action sg-index-color sg-icon" wx:if="{{action=='record'}}" name="notes-o" bindtap="navigate" data-url="/pages/use-record/index?id={{item.id}}"></van-icon>
+    <van-icon class="sg-action sg-index-color sg-icon" wx:if="{{action=='record'}}" name="notes-o" catchtap="navigate" data-url="/pages/use-record/index?id={{item.id}}"></van-icon>
   </view>
   <view class="sg-body sg-font-xs sg-bottom-border sg-pad-bottom-sm">
     <view class="sg-item sg-margin-tb-sm sg-flex">
       <view class="sg-left-item sg-width-50">固定资产编号:{{item.number}}</view>
-      <view class="sg-right-item sg-width-50">出厂日期:{{item.produce_date}}</view>
     </view>
     <view class="sg-item sg-margin-tb-sm sg-flex">
       <view class="sg-left-item sg-width-50">外形尺寸:{{item.shape}}</view>
       <view class="sg-right-item sg-width-50">采购原值:{{item.buy_origin}}</view>
     </view>
     <view class="sg-item sg-margin-tb-sm sg-flex">
-      <view class="sg-left-item sg-width-50">规格型号:{{item.spec ? item.spec.name : ''}}</view>
+      <view class="sg-right-item sg-width-50">出厂日期:{{item.produce_date}}</view>
       <view class="sg-right-item sg-width-50">生产厂家:{{item.manufacturer}}</view>
     </view>
   </view>
   <view class="sg-bottom sg-font-xs sg-flex sg-align-center sg-space-between">
     <view class="sg-left">
-      <view class="sg-item sg-margin-tb-sm">目前在用工点:{{item.work_point ? item.work_point.name : '无'}}</view>
+      <view class="sg-item sg-margin-tb-sm">目前在用项目:{{item.project ? item.project.name : '无'}}</view>
       <view class="sg-item sg-margin-tb-sm">借用时间:{{item.start_date ? item.start_date + '至' + item.end_date : (item.pivot ? item.pivot.start_date + '至' + item.pivot.end_date : '无')}}
       </view>
     </view>
-    <view class="sg-white sg-pad-sm sg-index-bg" wx:if="{{editDate}}" bindtap="editDate" data-index="{{index}}">修改时间</view>
+    <view class="sg-white sg-pad-sm sg-index-bg" wx:if="{{editDate}}" catchtap="editDate" data-index="{{index}}">修改时间</view>
   </view>
 </view>

+ 9 - 12
mini/pages/add-inner-device/index.js

xqd xqd
@@ -30,7 +30,9 @@ Page({
    */
   onLoad: function (options) {
     var that = this
-    api.getByName(this, 'devices/getThreeLevel', 'device_types', { type: 'drop_menu' }, function () {
+    api.getByName(this, 'devices/getThreeLevel', 'device_types', {
+      type: 'drop_menu'
+    }, function () {
       that.updateNameSpec()
     });
     // api.getByName(this, 'inner-devices/get', 'names', {type: 'drop_menu'});
@@ -98,22 +100,17 @@ Page({
     this.switchShowDate(e)
     this.setData({
       add_devices: add_devices,
-      showAdded:true
+      showAdded: true
     })
   },
 
   switchSelect: function (e) {
     var list = this.data.list
-    var index = e.currentTarget.dataset.index
-    var can = e.currentTarget.dataset.can
-    if (can) {
-      list[index].checked = list[index].checked ? false : true
-      this.setData({
-        list
-      })
-    } else {
-      util.error('该设备暂不能借用')
-    }
+    var index = e.detail.index
+    list[index].checked = list[index].checked ? false : true
+    this.setData({
+      list
+    })
   },
 
   onChange: function (e) {

+ 1 - 36
mini/pages/add-inner-device/index.wxml

xqd
@@ -15,42 +15,7 @@
     </van-search>
   </view>
   <view class="sg-list sg-pad">
-    <view class="sg-item sg-white-bg sg-pad sg-margin-bottom" wx:for="{{list}}" wx:key="index" bindtap="switchSelect"
-      data-index="{{index}}" data-can="{{item.status && item.status.key == 'free'}}">
-      <view class="sg-top sg-flex sg-space-between sg-bottom-border sg-pad-bottom-sm sg-font-small sg-bold">
-        <view class="sg-name">{{item.device ? item.device.name : ''}} -
-          {{item.device_name ? item.device_name.name : ''}}</view>
-        <view class="sg-status sg-flex sg-align-center">
-          <view class="sg-dot" style="background: {{item.status ? item.status.color : ''}}"></view>
-          <view class="sg-status-name">{{item.status ? item.status.name : ''}}</view>
-        </view>
-        <van-icon name="passed" wx:if="{{item.checked}}" class="sg-icon {{item.checked ? 'sg-index-color' : ''}}" />
-        <van-icon name="circle" wx:else class="sg-icon" />
-      </view>
-      <view class="sg-body sg-font-xs sg-bottom-border sg-pad-bottom-sm">
-        <view class="sg-item sg-margin-tb-sm sg-flex">
-          <view class="sg-left-item">固定资产编号:{{item.number}}</view>
-          <view class="sg-right-item">出厂日期:{{item.produce_date}}</view>
-        </view>
-        <view class="sg-item sg-margin-tb-sm sg-flex">
-          <view class="sg-left-item">外形尺寸:{{item.shape}}</view>
-          <view class="sg-right-item">采购原值:{{item.buy_origin}}</view>
-        </view>
-        <view class="sg-item sg-margin-tb-sm sg-flex">
-          <view class="sg-left-item">规格型号:{{item.spec ? item.spec.name : ''}}</view>
-          <view class="sg-right-item">生产厂家:{{item.manufacturer}}</view>
-        </view>
-      </view>
-      <view class="sg-bottom sg-font-xs sg-flex sg-align-center sg-space-between">
-        <view class="sg-left">
-          <view class="sg-item sg-margin-tb-sm">目前在用工点:{{item.work_point ? item.work_point.name : '无'}}</view>
-          <view class="sg-item sg-margin-tb-sm">借用时间:{{item.start_date ? item.start_date + '至' + item.end_date : '无'}}
-          </view>
-        </view>
-        <!-- <view class="sg-white sg-pad-sm {{item.status && item.status.key == 'free' ? 'sg-green-bg' : 'sg-gray-bg'}}">
-          借用设备</view> -->
-      </view>
-    </view>
+    <inner-device-card wx:for="{{list}}" wx:key="index" index="{{index}}" item="{{item}}" showChecked="{{true}}" bind:checked="switchSelect"></inner-device-card>
   </view>
   <van-dialog show="{{ showAdded }}" use-slot title="已添加设备" show-cancel-button bind:confirm="switchShowAdded"
     z-index="200" data-show="{{false}}">

+ 1 - 1
mini/pages/device-inner/index.js

xqd
@@ -78,7 +78,7 @@ Page({
   },
 
   navigate: function(e) {
-    this.saveFilter()
+    // this.saveFilter()
     wx.navigateTo({
       url: e.currentTarget.dataset.url,
     })

+ 11 - 9
mini/pages/filter/index.js

xqd xqd xqd xqd
@@ -26,12 +26,7 @@ Page({
    * 生命周期函数--监听页面加载
    */
   onLoad: function (options) {
-    api.getByName(this, 'projects/getAll', 'projects', {type: 'drop_menu'});
-    api.getByName(this, 'work-points/get', 'work_points', {type: 'drop_menu'});
-    var that = this
-    api.getByName(this, 'devices/getThreeLevel', 'device_types', {type: 'drop_menu'}, function() {
-      that.updateNameSpec()
-    });
+    
   },
 
   onChange: function(e) {
@@ -61,9 +56,9 @@ Page({
   },
 
   updateNameSpec: function() {
-    var device_types = this.data.device_types
-    var typeItem = this.getItemById(device_types, this.data.device_id)
-    var names = typeItem.names;
+    // var device_types = this.data.device_types
+    // var typeItem = this.getItemById(device_types, this.data.device_id)
+    var names = this.data.names;
     var nameItem = this.getItemById(names, this.data.device_name_id)
     // var specs = this.getItemById(nameItem.specs, this.data.spec)
     this.setData({
@@ -90,6 +85,7 @@ Page({
     var name = e.currentTarget.dataset.name
     var index = e.currentTarget.dataset.index
     var items = this.data[name]
+    if(index == 0) return false
     items.splice(index, 1)
     this.setData({
       [name]: items
@@ -124,6 +120,12 @@ Page({
    * 生命周期函数--监听页面显示
    */
   onShow: function () {
+    api.getByName(this, 'projects/getAll', 'projects', {type: 'drop_menu'});
+    api.getByName(this, 'work-points/get', 'work_points', {type: 'drop_menu'});
+    var that = this
+    api.getByName(this, 'device-names/getNamesAndSpecs', 'names', {type: 'drop_menu'}, function() {
+      that.updateNameSpec()
+    });
     var data = wx.getStorageSync('sg-device-filters')
     this.setData(data)
   },

+ 6 - 6
mini/pages/filter/index.wxml

xqd xqd xqd
@@ -19,7 +19,7 @@
                   data-name="project_ids" data-index="{{index}}" />
               </van-dropdown-menu>
               <van-button icon="cross" type="danger" bindtap="delete" data-name="project_ids"
-                data-index="{{index}}"></van-button>
+                data-index="{{index}}" disabled="{{index == 0}}"></van-button>
             </view>
           </view>
           <view class="sg-margin-tb">
@@ -27,7 +27,7 @@
           </view>
         </view>
       </van-tab>
-      <van-tab title="需求工点">
+      <!-- <van-tab title="需求工点">
         <view class="sg-list sg-pad sg-light-gray-bg">
           <view class="sg-bold sg-text-center sg-center sg-margin-tb">- 请选择所需工点 - </view>
           <view>
@@ -44,16 +44,16 @@
             <van-button type="primary" block icon="plus" bindtap="add" data-name="work_point_ids">新增</van-button>
           </view>
         </view>
-      </van-tab>
-      <van-tab title="设备类型">
+      </van-tab> -->
+      <van-tab title="设备详情">
         <view class="sg-list sg-pad sg-light-gray-bg">
           <view class="sg-bold sg-text-center sg-center sg-margin-tb">- 请选择筛选设备 - </view>
-          <view class="sg-pad-tb-sm">
+          <!-- <view class="sg-pad-tb-sm">
             <van-dropdown-menu>
               <van-dropdown-item value="{{ device_id }}" options="{{ device_types }}" bind:change="onChange"
                 data-name="device_id" />
             </van-dropdown-menu>
-          </view>
+          </view> -->
           <view class="sg-pad-tb-sm">
             <van-dropdown-menu>
               <van-dropdown-item value="{{ device_name_id }}" options="{{ names }}" bind:change="onChange" data-name="device_name_id" />

+ 5 - 5
mini/pages/order-detail/index.js

xqd xqd xqd
@@ -22,7 +22,7 @@ Page({
     remark: '',
     order_device: {},
     showPrice: false,
-    device_price: '',
+    device_quantity: '',
     right: null
   },
 
@@ -83,13 +83,13 @@ Page({
 
   changePrice: function() {
     var order_device = this.data.order_device
-    var price = this.data.device_price
+    var quantity = this.data.device_quantity
     var that = this
     http({
-      url: 'orders/changePrice',
+      url: 'orders/change',
       data: {
         id: order_device.id,
-        price: price
+        quantity: quantity
       },
       success: function (res) {
         if (res.code == 0) {
@@ -106,7 +106,7 @@ Page({
     if(show) {
       this.setData({
         order_device: item,
-        device_price: item.price / 100
+        device_quantity: item.price / 100
       })
     }
     this.setData({

+ 5 - 5
mini/pages/order-detail/index.wxml

xqd xqd
@@ -67,7 +67,7 @@
           <view class="sg-footer sg-flex sg-align-center sg-space-between sg-margin-top-sm">
             <view class="sg-font-lg sg-bold">总金额:¥{{item.price * item.quantity / 100}}</view>
             <view class="sg-btn sg-index-bg sg-pad-sm sg-white" hidden="{{!changePrice}}" bindtap="switchShowPrice"
-              data-item="{{item}}" data-show="{{true}}">修改价格</view>
+              data-item="{{item}}" data-show="{{true}}">更改数量</view>
           </view>
         </view>
       </block>
@@ -88,12 +88,12 @@
     </block>
   </view>
   <van-dialog id="van-dialog" />
-  <van-dialog show="{{ showPrice }}" use-slot title="修改价格" show-cancel-button bind:confirm="changePrice" z-index="1">
+  <van-dialog show="{{ showPrice }}" use-slot title="更改数量" show-cancel-button bind:confirm="changePrice" z-index="1">
     <view class="sg-box sg-pad">
       <view class="sg-form-item sg-pad-tb sg-top-border">
-        <view class="sg-label">设备单价</view>
-        <input value="{{device_price}}" class="sg-input" bindinput="onChange" data-name="device_price"
-          placeholder="请输入设备单价" type="number"></input>
+        <view class="sg-label">设备数量</view>
+        <input value="{{device_quantity}}" class="sg-input" bindinput="onChange" data-name="device_quantity"
+          placeholder="请输入设备数量" type="number"></input>
       </view>
     </view>
   </van-dialog>

+ 4 - 0
mini/pages/project/index.js

xqd
@@ -92,6 +92,10 @@ Page({
     var role = this.data.role
     var device_rent_menus = this.data.device_rent_menus
     device_rent_menus[0].hidden = !(role && role.rights && role.rights.rentCreate)
+    if(['sub', 'admin'].indexOf(role.key) != -1) {
+      device_rent_menus[1].hidden = true;
+      device_rent_menus[2].hidden = true;
+    }
     var device_use_menus = this.data.device_use_menus
     device_use_menus[0].hidden = !(role && role.rights && role.rights.applyCreate)
     this.setData({

+ 44 - 8
mini/pages/repair/index.js

xqd xqd xqd
@@ -27,7 +27,8 @@ Page({
     type: 'create',
     // create/edit
     dialog_type: 'create',
-    default_dates: []
+    default_dates: [],
+    showDevice: false
   },
 
   /**
@@ -44,26 +45,40 @@ Page({
     })
     api.getProject(this)
     api.getByName(this, 'work-points/get', 'work_points');
-    api.getByName(this, 'inner-devices/get', 'inner_devices');
+    api.getByName(this, 'inner-devices/get', 'inner_devices', {project_id:id});
   },
 
-  submit: function(e) {
-    if(this.data.pointIndex < 0) {
-      util.error('需求工点必填');
-      return false;
+  switchChecked(e) {
+    var name = e.currentTarget.dataset.name
+    var items = this.data[name]
+    var index = e.currentTarget.dataset.index
+    for(var i = 0; i < items.length; ++i) {
+      items[i].checked = false;
     }
+    items[index].checked = true;
+    this.setData({
+      [name]: items,
+      deviceIndex: index
+    })
+  },
+
+  submit: function(e) {
+    // if(this.data.pointIndex < 0) {
+    //   util.error('需求工点必填');
+    //   return false;
+    // }
     if(this.data.deviceIndex < 0) {
       util.error('维修设备必填');
       return false;
     }
-    var work_point = this.data.work_points[this.data.pointIndex]
+    // var work_point = this.data.work_points[this.data.pointIndex]
     var device = this.data.inner_devices[this.data.deviceIndex]
     var url = 'repair-devices/create'
     http({
       url: url,
       data: {
         project_id: this.data.id,
-        work_point_id: work_point.id,
+        // work_point_id: work_point.id,
         inner_device_id: device.id,
         money: this.data.money,
         reason: this.data.reason,
@@ -126,6 +141,27 @@ Page({
     this.setData({
       [name]: val
     })
+
+    if(name == 'pointIndex') {
+      var work_point = this.data.work_points[val]
+      var work_point_id = work_point ? work_point.id : ''
+      var that = this
+      api.getByName(this, 'inner-devices/get', 'inner_devices', {
+        work_point_id: work_point_id
+      }, function() {
+        that.setData({
+          deviceIndex: -1
+        })
+      });
+    }
+  },
+
+  switchShow(e) {
+    var name = e.currentTarget.dataset.name
+    var val = !this.data[name]
+    this.setData({
+      [name]: val
+    })
   },
 
   switchShowAdd: function(e) {

+ 23 - 9
mini/pages/repair/index.wxml

xqd xqd xqd
@@ -12,7 +12,7 @@
         <view class="sg-label">项目名称</view>
         <input value="{{project ? project.name : ''}}" class="sg-input" disabled="true"></input>
       </view>
-      <view class="sg-form-item sg-pad sg-top-border">
+      <!-- <view class="sg-form-item sg-pad sg-top-border">
         <view class="sg-label">需求工点</view>
         <picker bindchange="onChange" value="{{pointIndex}}" range="{{work_points}}" range-key="name"
           data-name="pointIndex" class="sg-input">
@@ -20,15 +20,10 @@
             {{pointIndex >= 0 ? work_points[pointIndex].name : '选择所需的工点'}}
           </view>
         </picker>
-      </view>
-      <view class="sg-form-item sg-pad sg-top-border">
+      </view> -->
+      <view class="sg-form-item sg-pad sg-top-border" bindtap="switchShow" data-name="showDevice">
         <view class="sg-label">维修设备</view>
-        <picker bindchange="onChange" value="{{deviceIndex}}" range="{{inner_devices}}" range-key="name"
-          data-name="deviceIndex" class="sg-input">
-          <view class="picker sg-gray-color">
-            <view>{{deviceIndex >= 0 ? inner_devices[deviceIndex].name : '选择需要维修的设备'}}</view>
-          </view>
-        </picker>
+        <view class="sg-input sg-gray-color">{{deviceIndex >= 0 ? inner_devices[deviceIndex].name : '选择需要维修的设备'}}</view>
       </view>
       <view class="sg-form-item sg-pad sg-top-border">
         <view class="sg-label">维修总金额</view>
@@ -49,6 +44,25 @@
       </view>
     </view>
   </view>
+  <van-popup show="{{ showDevice }}" bind:close="switchShow" data-name="showDevice" custom-style="width: 90%;">
+    <view class="sg-pad">
+      <view class="sg-font-lg sg-bold sg-text-center">已调用设备</view>
+      <view class="sg-list sg-height-limit">
+        <view class="sg-item sg-pad-tb-sm sg-flex sg-align-center sg-space-between sg-bottom-border sg-font-small" wx:for="{{inner_devices}}" wx:key="index" bindtap="switchChecked" data-name="inner_devices" data-index="{{index}}">
+          <view>
+            <view class="sg-bold">{{item.device_name ? item.device_name.name : ''}}-{{item.spec ? item.spec.name : ''}}</view>
+            <view class="sg-font-xs">固定资产编号:{{item.number}}</view>
+          </view>
+          <van-icon name="checked" class="sg-icon sg-index-color" wx:if="{{item.checked}}"/>
+          <van-icon name="circle" wx:else class="sg-icon"/>
+        </view>
+      </view>
+      <view class="sg-btns sg-flex sg-align-center sg-space-between sg-white-bg sg-pad-top">
+        <van-button type="danger" class="sg-popup-btn" block bind:click="switchShow" data-name="showDevice">取消</van-button>
+        <van-button type="info" class="sg-popup-btn" block bind:click="switchShow" data-name="showDevice">确认</van-button>
+      </view>
+    </view>
+  </van-popup>
   <van-calendar show="{{ showDate }}" bind:close="switchShowDate" bind:confirm="confirmDate" data-show="{{false}}"
     type="range" class="sg-calendar" default-date="{{default_dates}}" />
   <view class="sg-device-box" wx:if="{{tabIndex == 1}}">

+ 7 - 0
mini/pages/repair/index.wxss

xqd
@@ -45,4 +45,11 @@
 }
 .sg-custom {
   min-width: 200rpx;
+}
+.sg-height-limit {
+  max-height: 70vh;
+  overflow-y: scroll;
+}
+.sg-popup-btn {
+  width: 40%;
 }

+ 20 - 0
mini/pages/use-record/index.wxml

xqd
@@ -40,6 +40,26 @@
               </view>
             </view>
             <view class="sg-center sg-bold sg-black sg-pad-tb-sm">维修合计金额:¥{{item.money/100}}</view>
+            <view>
+              <view class="sg-flex sg-align-center sg-space-between sg-pad-tb-sm">
+                <view class="sg-index-color">上报项目</view>
+                <view>{{item.project ? item.project.name : ''}}</view>
+                <view class="sg-index-color">提交人</view>
+                <view>{{item.user ? item.user.name : ''}}</view>
+              </view>
+              <view class="sg-flex sg-align-center sg-space-between sg-pad-tb-sm">
+                <view class="sg-index-color">维修天数</view>
+                <view>{{item.day}}</view>
+              </view>
+              <view class="sg-flex sg-align-center sg-space-between sg-pad-tb-sm">
+                <view class="sg-index-color">维修原因</view>
+                <view>{{item.reason}}</view>
+              </view>
+              <view class="sg-flex sg-align-center sg-space-between sg-pad-tb-sm">
+                <view class="sg-index-color">备注</view>
+                <view>{{item.remark}}</view>
+              </view>
+            </view>
           </view>
         </block>
         <block wx:else class="sg-center">暂无维修记录</block>

+ 1 - 1
mini/utils/env.js

xqd
@@ -1,3 +1,3 @@
-const isTest = true;
+const isTest = false;
 export const baseUrl = isTest ? 'http://app.rt/api/mini/' : 'http://t18.9026.com/api/mini/';
 export const imgHost = isTest ? 'http://app.rt/images/' : 'http://t18.9026.com/images/'

+ 3 - 1
readme.md

xqd
@@ -34,4 +34,6 @@ https://share.mubu.com/doc/1bwUiSTcCQC
 https://share.mubu.com/doc/4Bid7O5TWS
 
 小程序问题
-https://docs.qq.com/doc/DVHd2SnFlcWJHQWZ2
+https://docs.qq.com/doc/DVHd2SnFlcWJHQWZ2
+
+https://docs.qq.com/doc/DVFZCWmlvSGpvYXlm

+ 2 - 1
routes/api.php

xqd xqd
@@ -62,7 +62,7 @@ $api->version('v1', ['namespace' => 'App\Http\Controllers\Api\mini', 'prefix' =>
     $api->any('orders/detail', 'OrderController@detail');
     $api->any('orders/getRole', 'OrderController@getRole');
     $api->any('orders/check', 'OrderController@check');
-    $api->any('orders/changePrice', 'OrderController@changePrice');
+    $api->any('orders/change', 'OrderController@change');
     $api->any('orders/delete', 'OrderController@delete');
 
     $api->any('repair-devices/create', 'RepairDeviceController@create');
@@ -87,6 +87,7 @@ $api->version('v1', ['namespace' => 'App\Http\Controllers\Api\mini', 'prefix' =>
     $api->any('data/projectStat', 'DataController@projectStat');
 
     $api->any('device-names/get', 'DeviceNameController@get');
+    $api->any('device-names/getNamesAndSpecs', 'DeviceNameController@getNamesAndSpecs');
 
     $api->any('uploadFile', 'UploadController@upload');