zhanglinxin 1 年間 前
コミット
dec89081bd

+ 1 - 3
application/approve/controller/ApproveInfo.php

@@ -122,11 +122,9 @@ class ApproveInfo extends Controller
      */
     public function edit()
     {
-        $id = input('id') ?:0;
-
         $this->title = '详情';
 //        $this->_form($this->table, 'form');
-        $data = ApproveInfoService::get_detail($id, [], CommonConstant::IS_WHO_0, 'detail');
+        $data = ApproveInfoService::get_detail(input('id') ?:0, [], CommonConstant::IS_WHO_0, 'detail');
         if ($data) {
             // 维修人员
             $data['maintain_user'] = $data['module'] == CommonConstant::MODULE_8 && $data['maintain_user_id'] > 0 ? ApproveMaintainUser::field('id,name')->find($data['maintain_user_id']) :null;

+ 24 - 3
application/approve/controller/ApproveInfoLog.php

@@ -15,7 +15,11 @@
 
 namespace app\approve\controller;
 
+use app\common\constant\ApplyConstant;
+use app\common\constant\CommonConstant;
+use app\common\constant\OfferConstant;
 use app\common\model\ApproveInfoLog as model;
+use app\common\service\CommonService;
 use library\Controller;
 
 /**
@@ -34,7 +38,12 @@ class ApproveInfoLog extends Controller
      */
     protected function initialize()
     {
-
+        $this->get_module_list = CommonConstant::get_module_list();
+        $this->get_approve_status_list = CommonConstant::get_approve_status_list();
+        $this->get_approve_status_list_admin = CommonConstant::get_approve_status_list_admin();
+        $this->get_is_who_list = CommonConstant::get_is_who_list();
+        $this->get_pay_type_list = ApplyConstant::get_pay_type_list();
+        $this->get_degree_list = OfferConstant::get_degree_list();
     }
 
     /**
@@ -51,7 +60,7 @@ class ApproveInfoLog extends Controller
         $this->info_id = $info_id = input('info_id') ?: 0;
         $this->title = '审批人修改记录';
 
-        $data = model::field('data', true)
+        $data = model::field('before,after', true)
             ->where('info_id',$info_id)
             ->with([
                 'user'=>function($query){
@@ -74,7 +83,19 @@ class ApproveInfoLog extends Controller
     public function edit()
     {
         $this->title = '详情';
-        $this->_form($this->table, 'form');
+        $data = model::find(input('id') ?:0);
+        if($data){
+            $data = $data->toArray();
+            $data['before_text']['module_info']['document_text'] = $data['before_text']['module_info']['document'] ? explode(',', $data['before_text']['module_info']['document']) : [];
+            $data['before_text']['module_info']['images_text'] = $data['before_text']['module_info']['images'] ? explode(',', $data['before_text']['module_info']['images']) : [];
+            $data['after_text']['module_info']['document_text'] = $data['after_text']['module_info']['images'] ? explode(',', $data['after_text']['module_info']['document']) : [];
+            $data['after_text']['module_info']['images_text'] = $data['after_text']['module_info']['images'] ? explode(',', $data['after_text']['module_info']['images']) : [];
+
+            $this->title = $this->get_module_list[$data['module']] . '详情';
+            $this->get_type_list = CommonService::get_type_list($data['module']);
+        }
+
+        return $this->fetch('form', ['vo' => $data['before_text'],'vo2'=>$data['after_text']]);
     }
 
 }

+ 3 - 0
application/approve/view/approve_info/form.html

@@ -22,6 +22,9 @@
     {case 11} {include file='approve_info/form_11'} {/case}
     {default /}
     {/switch}
+    <script>
+        window.form.render();
+    </script>
 </div>
 {/block}
 {block name="style"}

+ 126 - 2
application/approve/view/approve_info_log/form.html

@@ -9,9 +9,133 @@
 {block name="content"}
 <div class="think-box-shadow">
     <form class="layui-form layui-card" action="{:request()->url()}" data-auto="true" method="post" autocomplete="off">
-        <div class="layui-card-body">
-            {notempty name='vo.id'}<input type='hidden' value='{$vo.id}' name='id'>{/notempty}
+        <div class="layui-tab layui-tab-card think-bg-white">
+            <ul class="layui-tab-title notselect">
+                <li data-type="store-config-type-sms1">审批申请信息</li>
+            </ul>
+            <div class="layui-tab-content">
+                    <div class="layui-form-item">
+                        <label class="layui-form-label color-green font-w7">申购事由</label>
+                        <div class="layui-input-block">
+                            <input name="" placeholder="" value="{$vo.reason|default='--'}"
+                                   class="layui-input border-0" disabled>
+                            <p class="help-block"></p>
+                        </div>
+                    </div>
+                    <div class="layui-form-item">
+                        <label class="layui-form-label color-green font-w7">申购类型</label>
+                        <div class="layui-input-block">
+                            <input name="" placeholder="" value="{$get_type_list[$vo.type]|default='--'}"
+                                   class="layui-input border-0" disabled>
+                            <p class="help-block"></p>
+                        </div>
+                    </div>
+                    {notempty name='vo.apply_goods'}
+                    <div class="layui-form-item">
+                        <label class="layui-form-label color-green font-w7">总金额</label>
+                        <div class="layui-input-block">
+                            <input name="" placeholder="" value="{$vo.module_info.total_amount|default='--'}"
+                                   class="layui-input border-0" disabled>
+                            <p class="help-block"></p>
+                        </div>
+                    </div>
+                    {/notempty}
+                    <div class="layui-form-item">
+                        <label class="layui-form-label color-green font-w7">预计申购完成日期</label>
+                        <div class="layui-input-block">
+                            <input name="" placeholder="" value="{$vo.module_info.start_time|default='--'}"
+                                   class="layui-input border-0" disabled>
+                            <p class="help-block"></p>
+                        </div>
+                    </div>
+                    {notempty name='vo.module_info.document_text'}
+                    <div class="layui-form-item">
+                        <label class="layui-form-label color-green font-w7">附件</label>
+                        <div class="layui-input-block">
+                            {foreach $vo.module_info.document_text as $k=>$v}
+                            <p><a href="{$v}" target="_blank">{$v}</a></p>
+                            {/foreach}
+                            <p class="help-block"></p>
+                        </div>
+                    </div>
+                    {/notempty}
+                    {notempty name='vo.module_info.images_text'}
+                    <div class="layui-form-item">
+                        <label class="layui-form-label color-green font-w7">图片</label>
+                        <div class="layui-input-block">
+                            {foreach $vo.module_info.images_text as $k=>$v}
+                            <img data-tips-image src="{$v}" style="height: 300px;vertical-align:top"
+                                 class="margin-right-10 margin-bottom-10">
+                            {/foreach}
+                            <p class="help-block"></p>
+                        </div>
+                    </div>
+                    {/notempty}
+                    <div class="layui-form-item">
+                        <label class="layui-form-label color-green font-w7">支付方式</label>
+                        <div class="layui-input-block">
+                            <input name="" placeholder=""
+                                   value="{$get_pay_type_list[$vo.module_info.pay_type]|default='--'}"
+                                   class="layui-input border-0" disabled>
+                            <p class="help-block"></p>
+                        </div>
+                    </div>
 
+                    {notempty name='vo.apply_goods'}
+                    <div class="layui-form-item">
+                        <label class="layui-form-label color-green font-w7">申购商品</label>
+                        <div class="layui-input-block">
+                            <table class="layui-table">
+                                {foreach $vo.apply_goods as $k=>$v}
+                                <thead>
+                                <tr>
+                                    <td style="width: 20%">商品ID</td>
+                                    <td>{$v.goods_id|default='--'}</td>
+                                </tr>
+                                </thead>
+                                <tr>
+                                    <td>商品编号</td>
+                                    <td>{$v.goods_no|default='--'}</td>
+                                </tr>
+                                <tr>
+                                    <td>商品名称</td>
+                                    <td>{$v.goods_name|default='--'}</td>
+                                </tr>
+                                <tr>
+                                    <td>商品品牌</td>
+                                    <td>{$v.goods_brand|default='--'}</td>
+                                </tr>
+                                <tr>
+                                    <td>总金额</td>
+                                    <td>{$v.total_price|default='--'}</td>
+                                </tr>
+                                <tr>
+                                    <td>商品规格</td>
+                                    <td>
+                                        <table class="layui-table">
+                                            <tr>
+                                                <td>规格名称</td>
+                                                <td>单价</td>
+                                                <td>数量</td>
+                                            </tr>
+                                            {foreach name="v.goods_stock_text" item="vv"}
+                                            <tr>
+                                                <td>{$vv.name|default='--'}</td>
+                                                <td>{$vv.price|default='--'}</td>
+                                                <td>{$vv.stock|default='--'}</td>
+                                            </tr>
+                                            {/foreach}
+                                        </table>
+                                    </td>
+                                </tr>
+                                {/foreach}
+                            </table>
+                        </div>
+                    </div>
+                    {/notempty}
+
+                </div>
+            </div>
         </div>
         <div class="hr-line-dashed"></div>
     </form>

+ 33 - 1
application/common/model/ApproveInfoLog.php

@@ -14,9 +14,22 @@ class ApproveInfoLog extends Model
 
     // 追加属性
     protected $append = [
-
+        'before_text',
+        'after_text',
     ];
 
+    public function getBeforeTextAttr($value, $data)
+    {
+        $value = $value ? $value : (isset($data['before']) ? $data['before'] : '');
+        return $value ? json_decode($value,true) : [];
+    }
+
+    public function getAfterTextAttr($value, $data)
+    {
+        $value = $value ? $value : (isset($data['after']) ? $data['after'] : '');
+        return $value ? json_decode($value,true) : [];
+    }
+
 
     // 关联用户 (后台)
     public function user()
@@ -24,4 +37,23 @@ class ApproveInfoLog extends Model
         return $this->belongsTo(User::class, 'user_id', 'userid');
     }
 
+    protected static function init()
+    {
+        self::beforeInsert(function ($row) {
+            $changed = $row->getChangedData();
+        });
+
+        self::beforeUpdate(function ($row) {
+            $changed = $row->getChangedData();
+        });
+
+        self::afterInsert(function ($row) {
+            $changed = $row->getChangedData();
+        });
+
+        self::afterUpdate(function ($row) {
+            $changed = $row->getChangedData();
+        });
+    }
+
 }

+ 11 - 9
application/common/service/ApproveService.php

@@ -585,7 +585,8 @@ class ApproveService
      **/
     public static function edit($approve, $info, $params)
     {
-        $before_update = $info->toArray();
+        $module = $info->module;
+        $before = $info->toArray();
 
         $copy_user = $params['copy_user'] ? explode(',', $params['copy_user']) : [];
         $data = [
@@ -600,7 +601,6 @@ class ApproveService
         Db::startTrans();
         try {
             // 编辑对应模块
-            $module = $params['module'];
             $result = ApproveInfoService::create_module($module, $params, $info->id, $info, 'update');
 
             // 编辑抄送人
@@ -614,7 +614,7 @@ class ApproveService
             $info->save($data);
 
             // 保存修改记录
-            self::create_approve_info_log($info->id, $approve->approve_user, $before_update, $info, $result);
+            self::create_approve_info_log($approve->approve_user,$info->id, $module, $before, $info, $result);
             Db::commit();
         } catch (Exception $e) {
             except('出现错误:' . $e->getMessage(), 2, $e);
@@ -625,23 +625,25 @@ class ApproveService
     /**
      * 保存修改记录
      *
-     * @param integer $info_id 审批申请ID
      * @param integer $user_id 审批人userid
-     * @param array $before_update 数组
+     * @param integer $info_id 审批申请ID
+     * @param array $module 模块类型
+     * @param array $before 数组
      * @param array $info 数组
      * @param array $params 数组
      **/
-    public static function create_approve_info_log($info_id, $user_id, $before_update, $info, $params)
+    public static function create_approve_info_log($user_id, $info_id, $module, $before, $info, $params)
     {
         unset($info['module_info'], $info['data'], $info['apply_goods'], $info['stock_goods'], $info['use_goods'], $info['peer_user'], $info['contract'], $info['apply']);
         $info['module_info'] = $params['module_info'];
         $info['data'] = $params['other'] ? $params['other']['data'] : [];
 
         $data = [
-            'info_id' => $info_id,
             'user_id' => $user_id,
-            'before_update' => json_encode($before_update, JSON_UNESCAPED_UNICODE),
-            'after_update' => json_encode($info, JSON_UNESCAPED_UNICODE),
+            'info_id' => $info_id,
+            'module' => $module,
+            'before' => json_encode($before, JSON_UNESCAPED_UNICODE),
+            'after' => json_encode($info, JSON_UNESCAPED_UNICODE),
         ];
         ApproveInfoLog::create($data);
         return true;