瀏覽代碼

消息通知

李浩杰 4 年之前
父節點
當前提交
e585922123

+ 9 - 1
app/Http/Controllers/Api/mini/NotificationController.php

xqd xqd
@@ -31,8 +31,13 @@ class NotificationController extends BaseController
     {
         $user = Auth::guard('mini')->user();
         $is_read = $request->input('is_read');
-        $items = $this->model->where('user_id', $user->id)->where('is_read', $is_read);
+        $items = $this->model->where('user_id', $user->id)->where('is_read', $is_read)->orderBy('created_at', 'desc');
         $items = $items->paginate();
+        foreach ($items as $item) {
+            $data = $item->getNameContent();
+            $item->name = $data['name'];
+            $item->content = $data['content'];
+        }
         return $this->success(['data' => $items->items()]);
     }
 
@@ -57,6 +62,9 @@ class NotificationController extends BaseController
         if($order) {
             $order->formatOrder($order);
             $item->order = $order;
+            $data = $item->getNameContent();
+            $item->name = $data['name'];
+            $item->content = $data['content'];
         }
         return $this->success(['data' => $item]);
     }

+ 6 - 1
app/Http/Controllers/Api/mini/OrderController.php

xqd xqd xqd xqd
@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Api\mini;
 use App\Models\Device;
 use App\Models\DeviceName;
 use App\Models\InnerDevice;
+use App\Models\Notification;
 use App\Models\Option;
 use App\Models\Order;
 use App\Models\OrderDevice;
@@ -47,6 +48,7 @@ class OrderController extends BaseController
             'type' => 1
         ]);
         if(!$order) return $this->error(['msg' => '订单创建失败']);
+        Notification::send($order);
         $devices = $request->input('devices');
         $total = 0;
         foreach($devices as $device) {
@@ -129,9 +131,11 @@ class OrderController extends BaseController
             'project_id' => $project->id,
             'user_id' => $user->id,
             'project_role_id' => $project_role_id,
-            'type' => 2
+            'type' => 2,
+            'is_change' => 2
         ]);
         if(!$order) return $this->error(['msg' => '订单创建失败']);
+        Notification::send($order);
         foreach($devices as $device) {
             OrderDevice::create([
                 'name' => $device['name'],
@@ -358,6 +362,7 @@ class OrderController extends BaseController
             'last_project_role_id' => $project_role->id,
             'project_role_id' => $next_project_role_id
         ]);
+        Notification::send($order);
         if($res) return $this->success();
         return $this->error(['msg' => '操作失败']);
     }

+ 134 - 1
app/Models/Notification.php

xqd
@@ -4,5 +4,138 @@ namespace App\Models;
 
 class Notification extends BaseModel
 {
-    //
+    public static function send(Order $order)
+    {
+        if($order['is_draft'] == 1) return false;
+        $checked_id = Option::get('orders', 'status', 'checked');
+        $reject_id = Option::get('orders', 'status', 'reject');
+        $pass_id = Option::get('orders', 'status', 'pass');
+        $back_id = Option::get('orders', 'status', 'back');
+        $last_role = ProjectRole::find($order['last_project_role_id']);
+        $role = ProjectRole::find($order['project_role_id']);
+        $status = 1;
+        $user_ids = [];
+        if($role) {
+            $user_ids = ProjectUser::where([
+                ['project_id', $order['project_id']],
+                ['project_role_id', $role['id']]
+            ])->pluck('user_id');
+        }
+        // 外部租赁
+        if($order['type'] == 1) {
+            // 审批成功
+            if($order['status'] == $checked_id && $role && $last_role && $last_role['key'] == 'manager') {
+                $status = 1;
+            } else if($role && in_array($role['key'], ['machine', 'assist', 'manager'])) {
+                // 审批待处理
+                $status = 2;
+            } else if($order['status'] == $reject_id) {
+                // 审批被驳回
+                $status = 3;
+            } else if($order['status'] == $pass_id) {
+                // 租赁时间到期 status = 4
+                // 租赁已完成
+                $status = 5;
+            }
+        } else {
+            // 调用
+            // 调用成功
+            if($order['status'] == $checked_id && $role && $last_role && $last_role['key'] == 'admin') {
+                $status = $order['is_change'] == 1 ? 7 : 1;
+            } else if($role && in_array($role['key'], ['assist', 'manager', 'admin'])) {
+                // 调用待处理
+                $status = 2;
+            } else if($order['status'] == $reject_id) {
+                // 调用被驳回
+                $status = 3;
+            } else if($order['status'] == $pass_id) {
+                // 调用时间到期 status = 4
+                // 调用已完成
+                $status = 5;
+            } else if($order['status'] == $back_id) {
+                // 调用已归还
+                $status = 6;
+            }
+        }
+        foreach($user_ids as $user_id) {
+            Notification::create([
+                'user_id' => $user_id,
+                'order_id' => $order['id'],
+                'status' => $status,
+                'type' => $order['type'],
+                'is_read' => 2
+            ]);
+        }
+        return true;
+    }
+
+    public function getNameContent()
+    {
+        if($this['type'] == 1) {
+            if($this['status'] == 1) {
+                return [
+                    'name' => '设备租赁申请通过',
+                    'content' => '你的设备租赁申请已通过,请确认相关信息:'
+                ];
+            } else if($this['status'] == 2) {
+                return [
+                    'name' => '设备租赁审批待处理',
+                    'content' => '你有一条设备租赁申请待审批,请确认相关信息:'
+                ];
+            } else if($this['status'] == 3) {
+                return [
+                    'name' => '设备租赁审批被驳回',
+                    'content' => '你有一条设备租赁申请被驳回,请确认相关信息:'
+                ];
+            } else if($this['status'] == 4) {
+                return [
+                    'name' => '设备租赁已到期',
+                    'content' => '你有一条设备租赁已到期消息,请确认相关信息:'
+                ];
+            } else if($this['status'] == 5) {
+                return [
+                    'name' => '设备租赁已完成',
+                    'content' => '你有一条设备租赁已完成消息,请确认相关信息:'
+                ];
+            }
+        } else {
+            if($this['status'] == 1) {
+                return [
+                    'name' => '设备调用申请通过',
+                    'content' => '你的设备调用申请已通过,请确认相关信息:'
+                ];
+            } else if($this['status'] == 2) {
+                return [
+                    'name' => '设备调用审批待处理',
+                    'content' => '你有一条设备调用申请待审批,请确认相关信息:'
+                ];
+            } else if($this['status'] == 3) {
+                return [
+                    'name' => '设备租赁调用被驳回',
+                    'content' => '你有一条设备调用申请被驳回,请确认相关信息:'
+                ];
+            } else if($this['status'] == 4) {
+                return [
+                    'name' => '设备调用已到期',
+                    'content' => '你有一条设备调用已到期消息,请确认相关信息:'
+                ];
+            } else if($this['status'] == 5) {
+                return [
+                    'name' => '设备调用已完成',
+                    'content' => '你有一条设备调用已完成消息,请确认相关信息:'
+                ];
+            } else if($this['status'] == 6) {
+                return [
+                    'name' => '设备调用已归还',
+                    'content' => '你有一条设备调用已归还消息,请确认相关信息:'
+                ];
+            } else if($this['status'] == 7) {
+                return [
+                    'name' => '设备调用被修改',
+                    'content' => '你有一条设备调用被修改消息,请确认相关信息:'
+                ];
+            }
+        }
+        return ['name' => '', 'content' => ''];
+    }
 }

+ 31 - 0
database/migrations/2020_12_21_073714_add_type_to_notification.php

xqd
@@ -0,0 +1,31 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class AddTypeToNotification extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('notifications', function (Blueprint $table) {
+            $table->tinyInteger('type')->after('name')->comment('1租赁2调用')->nullable();
+            $table->tinyInteger('status')->after('name')->comment('状态')->nullable();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        //
+    }
+}

+ 30 - 0
database/migrations/2020_12_21_082637_add_is_change_to_orders.php

xqd
@@ -0,0 +1,30 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class AddIsChangeToOrders extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('orders', function (Blueprint $table) {
+            $table->tinyInteger('is_change')->after('last_user_id')->default(2)->comment('1是2否')->nullable();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        //
+    }
+}

+ 4 - 0
database/seeds/InnerOrderSeeder.php

xqd
@@ -147,6 +147,10 @@ class InnerOrderSeeder extends Seeder
 
             $this->createOrderDevice($order);
         }
+
+        $this->call([
+            NotificationSeeder::class
+        ]);
     }
 
     public function createOrderDevice(\App\Models\Order $order)

+ 31 - 0
database/seeds/NotificationSeeder.php

xqd
@@ -0,0 +1,31 @@
+<?php
+
+use Illuminate\Database\Seeder;
+
+class NotificationSeeder extends Seeder
+{
+    /**
+     * Run the database seeds.
+     *
+     * @return void
+     */
+    public function run()
+    {
+        $user = \App\User::first();
+        $order = \App\Models\Order::first();
+        \App\Models\Notification::truncate();
+        $total = 100;
+        for($i = 0; $i < $total; ++$i) {
+            $type = mt_rand(1, 2);
+            $status = $type == 1 ? mt_rand(1, 5) : mt_rand(1, 7);
+            $is_read = mt_rand(1, 2);
+            \App\Models\Notification::create([
+                'user_id' => $user->id,
+                'order_id' => $order->id,
+                'type' => $type,
+                'status' => $status,
+                'is_read' => $is_read
+            ]);
+        }
+    }
+}

+ 7 - 6
mini/app.json

xqd xqd
@@ -1,24 +1,24 @@
 {
   "pages": [
+    "pages/index/index",
+    "pages/data/index",
+    "pages/order-inner/index",
+    "pages/order/index",
+    "pages/notification/index",
+    "pages/project/index",
     "pages/about/index",
     "pages/feedback/index",
     "pages/account/index",
     "pages/password/index",
     "pages/bind/index",
     "pages/user/index",
-    "pages/data/index",
     "pages/filter-data/index",
-    "pages/index/index",
     "pages/note-detail/index",
     "pages/draft/index",
-    "pages/notification/index",
-    "pages/project/index",
     "pages/use-record/index",
     "pages/device-inner/index",
     "pages/repair/index",
     "pages/filter/index",
-    "pages/order-inner/index",
-    "pages/order/index",
     "pages/add-inner-device/index",
     "pages/create-order/index",
     "pages/create-order-inner/index",
@@ -70,6 +70,7 @@
     "inner-device-card": "/components/inner-device-card/index",
     "out-order-item": "/components/out-order-item/index",
     "inner-order-item": "/components/inner-order-item/index",
+    "detail-table": "/components/detail-table/index",
     "van-checkbox": "@vant/weapp/checkbox/index",
     "van-checkbox-group": "@vant/weapp/checkbox-group/index",
     "van-tab": "@vant/weapp/tab/index",

+ 1 - 0
mini/app.wxss

xqd
@@ -49,6 +49,7 @@
 .sg-center {
   margin-left: auto;
   margin-right: auto;
+  text-align: center;
 }
 .sg-white-bg {
   background: white;

+ 23 - 0
mini/components/detail-table/index.js

xqd
@@ -0,0 +1,23 @@
+// components/detail-table/index.js
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+
+  }
+})

+ 4 - 0
mini/components/detail-table/index.json

xqd
@@ -0,0 +1,4 @@
+{
+  "component": true,
+  "usingComponents": {}
+}

+ 2 - 0
mini/components/detail-table/index.wxml

xqd
@@ -0,0 +1,2 @@
+<!--components/detail-table/index.wxml-->
+<text>components/detail-table/index.wxml</text>

+ 1 - 0
mini/components/detail-table/index.wxss

xqd
@@ -0,0 +1 @@
+/* components/detail-table/index.wxss */

+ 4 - 2
mini/components/inner-order-item/index.js

xqd xqd
@@ -1,11 +1,13 @@
 // components/out-order-item/index.js
 import Dialog from '../../miniprogram_npm/@vant/weapp/dialog/dialog';
+import http from '../../utils/http'
 Component({
   /**
    * 组件的属性列表
    */
   properties: {
-    item: Object
+    item: Object,
+    role: Object
   },
 
   /**
@@ -51,7 +53,7 @@ Component({
         },
         success: function (res) {
           if (res.code == 0) {
-            that.triggerEvent("itemChange")
+            that.triggerEvent("update")
           }
         }
       })

+ 5 - 2
mini/components/out-order-item/index.js

xqd xqd
@@ -1,10 +1,13 @@
 // components/inner-order-item/index.js
+import Dialog from '../../miniprogram_npm/@vant/weapp/dialog/dialog';
+import http from '../../utils/http'
 Component({
   /**
    * 组件的属性列表
    */
   properties: {
-    item: Object
+    item: Object,
+    role: Object
   },
 
   /**
@@ -51,7 +54,7 @@ Component({
         },
         success: function (res) {
           if (res.code == 0) {
-            
+            that.triggerEvent('update', {})
           }
         }
       })

+ 1 - 0
mini/pages/about/index.json

xqd
@@ -1,3 +1,4 @@
 {
+  "navigationBarTitleText": "关于我们",
   "usingComponents": {}
 }

+ 14 - 1
mini/pages/about/index.wxml

xqd
@@ -1,2 +1,15 @@
 <!--pages/about/index.wxml-->
-<text>pages/about/index.wxml</text>
+<view class="sg-container">
+  <view class="sg-flex sg-flex-column sg-align-center sg-pad">
+    <image src="http://app.rt/images/logo.png" mode="widthFix" class="sg-logo" style="width: 400rpx"></image>
+    <view class="sg-margin-tb sg-bold sg-font-lg" style="color: #174589">城通设备管理系统</view>
+    <view class="sg-gray-color">Version 1.0.0.1</view>
+  </view>
+  <view class="sg-fix-bottom sg-pad sg-flex sg-flex-column sg-align-center sg-font-small">
+    <view class="sg-pad-tb-sm sg-index-color">《软件许可及服务协议》</view>
+    <view class="sg-pad-tb-sm sg-index-color">《隐私保护指引》</view>
+    <view class="sg-gray-color">思维定制 版权所有</view>
+    <view class="sg-pad-tb-sm sg-gray-color">Copyright © 2017-2020 Thinking Custom</view>
+    <view class="sg-gray-color">All rights reserved</view>
+  </view>
+</view>

+ 1 - 0
mini/pages/bind/index.json

xqd
@@ -1,3 +1,4 @@
 {
+  "navigationBarTitleText": "绑定微信通知",
   "usingComponents": {}
 }

+ 16 - 2
mini/pages/data/index.js

xqd xqd xqd xqd
@@ -88,7 +88,8 @@ Page({
     data: [],
     ec: {
       onInit: initChart
-    }
+    },
+    detail_data: []
   },
 
   /**
@@ -137,6 +138,7 @@ Page({
     var ids = this.data.project_ids
     if (ids.length <= 0) return false
     var filter = this.data.filter
+    // var chat 
     var data = {
       project_ids: ids,
       date: this.data.date,
@@ -147,6 +149,13 @@ Page({
       rent_type_ids: filter.rent_type_ids
     }
     var that = this
+    // http({
+    //   url: 'data/getStat',
+    //   data: data,
+    //   success: function(res) {
+
+    //   }
+    // })
     api.getByName(this, 'data/getStat', 'data', data, function(res) {
       that.updateChart()
     });
@@ -202,7 +211,12 @@ Page({
       [name]: index
     })
     if(name == 'chartIndex') {
-      this.updateChart()
+      var chart = this.data.charts[this.data.chartIndex]
+      if(chart.type == 'detail') {
+        this.getDetailData()
+      } else {
+        this.updateChart()
+      }
     }
   },
   updateChart: function() {

+ 7 - 2
mini/pages/data/index.wxml

xqd
@@ -64,11 +64,16 @@
         </view>
       </view>
       <view class="sg-chart">
-        <ec-canvas id="mychart-dom-bar" canvas-id="mychart-bar" ec="{{ ec }}"></ec-canvas>
+        <block wx:if="{{chartIndex == 3}}">
+          <detail-table data="{{detail_data}}"></detail-table>
+        </block>
+        <block wx:else>
+          <ec-canvas id="mychart-dom-bar" canvas-id="mychart-bar" ec="{{ ec }}"></ec-canvas>
+        </block>
       </view>
     </block>
     <block wx:else>
-      <view class="sg-center sg-gray-color sg-font-small">
+      <view class="sg-center sg-text-center sg-gray-color sg-font-small">
         <view>筛选条件暂无</view>
         <view>请选择需要查看的项目后</view>
         <view>数据才可进行查看</view>

+ 1 - 0
mini/pages/feedback/index.json

xqd
@@ -1,3 +1,4 @@
 {
+  "navigationBarTitleText": "用户反馈",
   "usingComponents": {}
 }

+ 7 - 1
mini/pages/notification/index.js

xqd xqd
@@ -25,6 +25,10 @@ Page({
     this.getList();
   },
 
+  navigate(e) {
+    getApp().navigate(e)
+  },
+
   switchTab: function (e) {
     var index = e.currentTarget.dataset.index
     this.setData({
@@ -53,10 +57,12 @@ Page({
     var that = this
     var index = this.data.tabIndex
     var is_read = this.data.is_read[index]
+    var page = this.data.pages[index]
     http({
       url: 'notifications/get',
       data: {
-        is_read: is_read
+        is_read: is_read,
+        page: page
       },
       success: function (res) {
         if (res.code == 0) {

+ 32 - 27
mini/pages/notification/index.wxml

xqd
@@ -1,44 +1,49 @@
 <!--pages/create-order/index.wxml-->
-<view class="sg-container">
-  <view class="sg-tabs sg-flex sg-align-center sg-space-around">
+<view class="sg-container" style="padding-top: 70rpx">
+  <view class="sg-tabs sg-flex sg-align-center sg-space-around sg-fix-top" style="z-index: 100">
     <block wx:for="{{tabs}}" wx:key="index">
       <view class="sg-tab sg-pad {{index == tabIndex ? 'sg-seleted' : 'sg-gray-color'}}" bindtap="switchTab"
         data-index="{{index}}">{{item}}({{stat[index]}})</view>
     </block>
   </view>
-  <view class="sg-pad" wx:if="{{tabIndex == 0}}">
-    <view class="sg-item sg-white-bg sg-pad" wx:for="{{list[0]}}" wx:key="index" bindtap="navigate" data-url="/pages/note-detail/index?id={{item.id}}">
-      <view class="sg-flex sg-align-center sg-space-between sg-font-small">
-        <view class="sg-flex sg-align-center">
-          <view class="sg-margin-right">{{item.created_at}}</view>
-          <view>{{item.name}}</view>
+  <view>
+    <view class="sg-pad" wx:if="{{tabIndex == 0}}">
+      <view class="sg-item sg-white-bg sg-pad sg-margin-tb" wx:for="{{list[0]}}" wx:key="index" bindtap="navigate"
+        data-url="/pages/note-detail/index?id={{item.id}}">
+        <view class="sg-flex sg-align-center sg-space-between sg-font-small">
+          <view class="sg-flex sg-align-center">
+            <view class="sg-margin-right">{{item.created_at}}</view>
+            <view>{{item.type == 1 ? '租赁通知' : '调用通知'}}</view>
+          </view>
+          <van-button type="danger" round size="mini">new</van-button>
+        </view>
+        <view class="sg-gray-color sg-pad-tb-sm sg-bottom-border">{{item.content}}</view>
+        <view class="sg-flex sg-align-center sg-space-between sg-pad-tb-sm">
+          <view>查看详情</view>
+          <van-icon name="arrow" />
         </view>
-        <van-button type="danger" round size="mini">new</van-button>
-      </view>
-      <view class="sg-gray-color sg-pad-tb-sm sg-bottom-border">{{item.content}}</view>
-      <view class="sg-flex sg-align-center sg-space-between sg-pad-tb-sm">
-        <view>查看详情</view>
-        <van-icon name="arrow" />
       </view>
     </view>
-  </view>
-  <view class="sg-pad" wx:if="{{tabIndex == 1}}">
-    <view class="sg-item sg-white-bg sg-pad" wx:for="{{list[1]}}" wx:key="index" bindtap="navigate" data-url="/pages/note-detail/index?id={{item.id}}">
-      <view class="sg-flex sg-align-center sg-space-between sg-font-small">
-        <view class="sg-flex sg-align-center">
-          <view class="sg-margin-right">{{item.created_at}}</view>
-          <view>{{item.name}}</view>
+    <view class="sg-pad" wx:if="{{tabIndex == 1}}">
+      <view class="sg-item sg-white-bg sg-pad sg-margin-tb" wx:for="{{list[1]}}" wx:key="index" bindtap="navigate"
+        data-url="/pages/note-detail/index?id={{item.id}}">
+        <view class="sg-flex sg-align-center sg-space-between sg-font-small">
+          <view class="sg-flex sg-align-center">
+            <view class="sg-margin-right">{{item.created_at}}</view>
+            <view>{{item.type == 1 ? '租赁通知' : '调用通知'}}</view>
+          </view>
+        </view>
+        <view class="sg-gray-color sg-pad-tb-sm sg-bottom-border">{{item.content}}</view>
+        <view class="sg-flex sg-align-center sg-space-between sg-pad-tb-sm">
+          <view>查看详情</view>
+          <van-icon name="arrow" />
         </view>
-      </view>
-      <view class="sg-gray-color sg-pad-tb-sm sg-bottom-border">{{item.content}}</view>
-      <view class="sg-flex sg-align-center sg-space-between sg-pad-tb-sm">
-        <view>查看详情</view>
-        <van-icon name="arrow" />
       </view>
     </view>
   </view>
   <block wx:if="{{tabIndex == 0}}">
-    <view class="sg-submit-box sg-pad sg-fix-bottom sg-flex sg-align-center sg-center" bindtap="doAction" data-type="has_read">
+    <view class="sg-submit-box sg-pad sg-fix-bottom sg-flex sg-align-center sg-center" bindtap="doAction"
+      data-type="has_read">
       全部已读
     </view>
   </block>

+ 0 - 33
mini/pages/order-inner/index.js

xqd
@@ -60,39 +60,6 @@ Page({
       this.search()
     }
   },
-  doAction: function(e) {
-    var type = e.currentTarget.dataset.type
-    if(type == 'edit' || type == 'detail') {
-      this.navigate(e)
-    } else if(type == 'confirm') {
-      var that = this
-      var order = e.currentTarget.dataset.order
-      Dialog.confirm({
-        title: '提示',
-        message: '确定订单吗',
-      })
-        .then(() => {
-          that.submitCheck(order)
-        })
-    }
-  },
-
-  submitCheck(order) {
-    var that = this
-    http({
-      url: 'orders/check',
-      data: {
-        id: order.id,
-        type: 'confirm',
-        remark: order.remark
-      },
-      success: function (res) {
-        if (res.code == 0) {
-          that.search()
-        }
-      }
-    })
-  },
 
   navigate: function(e) {
     wx.navigateTo({

+ 3 - 48
mini/pages/order-inner/index.wxml

xqd
@@ -16,54 +16,9 @@
   </view>
   <view class="sg-list-box sg-pad">
     <view class="sg-list" wx:for="{{list}}" hidden="{{tabIndex != index}}" wx:key="index">
-      <view class="sg-item sg-white-bg sg-pad sg-margin-bottom sg-font-small" wx:for="{{item}}" wx:for-item="i_item"
-        wx:for-index="i_index" wx:key="i_index" data-url="/pages/order-detail-inner/index?id={{i_item.id}}"
-        bindtap="navigate">
-        <view class="sg-top sg-bottom-border">
-          <view class="sg-order-status sg-flex sg-align-center sg-space-between sg-margin-bottom sg-font-xs">
-            <view class="sg-order sg-gray-color">订单号:{{i_item.order_number}}</view>
-            <view class="sg-status sg-bold" style="color: {{i_item.color}}">{{i_item.status}}</view>
-          </view>
-          <view class="sg-device-info sg-font-xs">
-            <view class="sg-table-row sg-flex sg-align-center sg-space-around sg-pad-tb-sm sg-top-border">
-              <view class="sg-table-column">资产编号</view>
-              <view class="sg-table-column">设备名称</view>
-              <view class="sg-table-column">开始时间</view>
-              <view class="sg-table-column">结束时间</view>
-            </view>
-            <view class="sg-table-row sg-flex sg-align-center sg-space-around sg-pad-tb-sm sg-top-border" wx:for="{{i_item.devices}}" wx:for-item="j_item" wx:for-index="j_index"
-              wx:key="j_index">
-              <view class="sg-table-column">{{j_item.number}}</view>
-              <view class="sg-table-column">{{j_item.name}}</view>
-              <view class="sg-table-column">{{j_item.pivot ? j_item.pivot.start_date : ''}}</view>
-              <view class="sg-table-column">{{j_item.pivot ? j_item.pivot.end_date : ''}}</view>
-            </view>
-          </view>
-        </view>
-        <view class="sg-bottom sg-flex sg-align-center sg-space-between">
-          <view class="sg-left">
-            <view class="sg-left-item sg-margin-tb-sm">需求工点:{{i_item.work_point_name}}</view>
-            <view class="sg-left-item sg-margin-tb-sm">提交人:{{i_item.user_name}}</view>
-            <view class="sg-left-item sg-margin-tb-sm">创建时间:{{i_item.date_time}}</view>
-          </view>
-          <block wx:if="{{i_item.status=='管理员 - 已审核' && role && role.project_role.key == 'machine'}}">
-            <view class="sg-right sg-green-bg sg-pad-sm sg-white" catchtap="doAction" data-type="confirm"
-              data-order="{{i_item}}">确认订单</view>
-          </block>
-          <block wx:elif="{{i_item.status_key=='reject'}}">
-            <view class="sg-right sg-red-bg sg-pad-sm sg-white" catchtap="doAction" data-type="edit"
-              data-url="/pages/create-order-inner/index?id={{i_item.project_id}}&order_id={{i_item.id}}&type=edit">重新修订</view>
-          </block>
-          <block wx:elif="{{i_item.status_key=='pass' && role && role.project_role && role.project_role.key=='machine'}}">
-            <view class="sg-right sg-green-bg sg-pad-sm sg-white" catchtap="doAction" data-type="edit"
-              data-url="/pages/create-order-inner/index?id={{i_item.project_id}}&order_id={{i_item.id}}&type=edit">归还/续租</view>
-          </block>
-          <block wx:else>
-            <view class="sg-right sg-index-bg sg-pad-sm sg-white" catchtap="doAction" data-type="detail"
-              data-url="/pages/order-detail-inner/index?id={{i_item.id}}">查看详情</view>
-          </block>
-        </view>
-      </view>
+      <block wx:for="{{item}}" wx:for-item="i_item" wx:for-index="i_index" wx:key="i_index">
+        <inner-order-item item="{{i_item}}" role="{{role}}" bind:update="update"></inner-order-item>
+      </block>
     </view>
   </view>
   <van-dialog id="van-dialog" />

+ 0 - 33
mini/pages/order/index.js

xqd
@@ -50,39 +50,6 @@ Page({
     api.getByName(this, 'orders/getRole', 'role', {id: id});
     this.getList();
   },
-  doAction: function(e) {
-    var type = e.currentTarget.dataset.type
-    if(type == 'edit' || type == 'detail') {
-      this.navigate(e)
-    } else if(type == 'confirm') {
-      var that = this
-      var order = e.currentTarget.dataset.order
-      Dialog.confirm({
-        title: '提示',
-        message: '确定订单吗',
-      })
-        .then(() => {
-          that.submitCheck(order)
-        })
-    }
-  },
-
-  submitCheck(order) {
-    var that = this
-    http({
-      url: 'orders/check',
-      data: {
-        id: order.id,
-        type: 'confirm',
-        remark: order.remark
-      },
-      success: function (res) {
-        if (res.code == 0) {
-          that.search()
-        }
-      }
-    })
-  },
 
   navigate: function(e) {
     wx.navigateTo({

+ 3 - 40
mini/pages/order/index.wxml

xqd
@@ -16,46 +16,9 @@
   </view>
   <view class="sg-list-box sg-pad">
     <view class="sg-list" wx:for="{{list}}" hidden="{{tabIndex != index}}" wx:key="index">
-      <view class="sg-item sg-white-bg sg-pad sg-margin-bottom sg-font-small" wx:for="{{item}}" wx:for-item="i_item"
-        wx:for-index="i_index" wx:key="i_index" data-url="/pages/order-detail/index?id={{i_item.id}}"
-        bindtap="navigate">
-        <view class="sg-top sg-bottom-border">
-          <view class="sg-order-status sg-flex sg-align-center sg-space-between sg-margin-bottom sg-font-xs">
-            <view class="sg-order sg-gray-color">订单号:{{i_item.order_number}}</view>
-            <view class="sg-status sg-bold" style="color: {{i_item.color}}">{{i_item.status}}</view>
-          </view>
-          <view class="sg-device-info">
-            <view class="sg-label">租借设备概要:</view>
-            <view class="sg-device-item sg-flex sg-align-center sg-space-between sg-margin-tb-sm"
-              wx:for="{{i_item.devices}}" wx:for-item="j_item" wx:for-index="j_index" wx:key="j_index">
-              <view class="sg-name">
-                {{j_index+1}}.{{j_item.device ? j_item.device.name : ''}}-{{j_item.device_name ? j_item.device_name.name : ''}}-{{j_item.spec ? j_item.spec.name : ''}}
-              </view>
-              <view class="sg-price">¥{{j_item.price/100}}×{{j_item.quantity}}</view>
-            </view>
-          </view>
-          <view class="sg-total sg-text-right sg-margin-tb-sm">合计:¥{{i_item.money/100}}</view>
-        </view>
-        <view class="sg-bottom sg-flex sg-align-center sg-space-between">
-          <view class="sg-left">
-            <view class="sg-left-item sg-margin-tb-sm">需求工点:{{i_item.work_point_name}}</view>
-            <view class="sg-left-item sg-margin-tb-sm">提交人:{{i_item.user_name}}</view>
-            <view class="sg-left-item sg-margin-tb-sm">创建时间:{{i_item.date_time}}</view>
-          </view>
-          <block wx:if="{{i_item.status=='项目经理 - 已审核' && role && role.project_role.key == 'work'}}">
-            <view class="sg-right sg-green-bg sg-pad-sm sg-white" catchtap="doAction" data-type="confirm"
-              data-order="{{i_item}}">确认订单</view>
-          </block>
-          <block wx:elif="{{i_item.status_key=='reject'}}">
-            <view class="sg-right sg-red-bg sg-pad-sm sg-white" catchtap="doAction" data-type="edit"
-              data-url="/pages/create-order/index?id={{i_item.project_id}}&order_id={{i_item.id}}&type=edit">重新修订</view>
-          </block>
-          <block wx:else>
-            <view class="sg-right sg-index-bg sg-pad-sm sg-white" catchtap="doAction" data-type="detail"
-              data-url="/pages/order-detail/index?id={{i_item.id}}">查看详情</view>
-          </block>
-        </view>
-      </view>
+      <block wx:for="{{item}}" wx:for-item="i_item" wx:for-index="i_index" wx:key="i_index">
+        <out-order-item item="{{i_item}}" bind:update="search" role="{{role}}"></out-order-item>
+      </block>
     </view>
   </view>
   <van-dialog id="van-dialog" />

+ 1 - 0
mini/pages/password/index.json

xqd
@@ -1,3 +1,4 @@
 {
+  "navigationBarTitleText": "修改密码",
   "usingComponents": {}
 }