chenying 3 سال پیش
والد
کامیت
1d8dffb242

+ 5 - 0
package-lock.json

@@ -9215,6 +9215,11 @@
       "resolved": "https://registry.npmjs.org/js-calendar/-/js-calendar-1.2.3.tgz",
       "integrity": "sha512-dAA1/Zbp4+c5E+ARCVTIuKepXsNLzSYfzvOimiYD4S5eeP9QuplSHLcdhfqFSwyM1o1u6ku6RRRCyaZ0YAjiBw=="
     },
+    "js-file-download": {
+      "version": "0.4.12",
+      "resolved": "https://registry.npmjs.org/js-file-download/-/js-file-download-0.4.12.tgz",
+      "integrity": "sha512-rML+NkoD08p5Dllpjo0ffy4jRHeY6Zsapvr/W86N7E0yuzAO6qa5X9+xog6zQNlH102J7IXljNY2FtS6Lj3ucg=="
+    },
     "js-tokens": {
       "version": "3.0.2",
       "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",

+ 9 - 5
src/views/modules/cus/communicate-add-or-update.vue

@@ -1,10 +1,11 @@
 <template>
 <div>
-  <el-dialog
+  <!-- <el-dialog
     :title="!id ? '新增': display ? '详情' : '修改'"
     width="70%"
     :close-on-click-modal="false"
-    :visible.sync="visible">
+    :visible.sync="visible"> -->
+    <div class="my-title">{{ !id ? '新增': display ? '详情' : '修改' }}</div>
     <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="auto">
       <el-row class="my-row">
         <el-col :span="8">
@@ -126,10 +127,10 @@
       </div>
     </el-form>
     <span slot="footer" class="dialog-footer">
-      <el-button @click="visible = false">取消</el-button>
+      <el-button @click="onChose">取消</el-button>
       <el-button v-if="!display" type="primary" @click="dataFormSubmit()">确定</el-button>
     </span>
-  </el-dialog>
+  <!-- </el-dialog> -->
    <template-chose v-if="inboundVisible" ref="inbound" @addItems="addItems" />
 </div>
 </template>
@@ -178,6 +179,9 @@
       }
     },
     methods: {
+      onChose () {
+        this.$emit('onChose')
+      },
       async init (id, display) {
         this.dataForm = {}
         this.cusRCommProductVOS = []
@@ -264,7 +268,7 @@
                   type: 'success',
                   duration: 1500,
                   onClose: () => {
-                    this.visible = false
+                    this.onChose()
                     this.$emit('refreshDataList')
                   }
                 })

+ 10 - 4
src/views/modules/cus/communicate-detail.vue

@@ -1,9 +1,11 @@
 <template>
-  <el-dialog
+  <!-- <el-dialog
     title="查看"
     width="70%"
     :close-on-click-modal="false"
-    :visible.sync="visible">
+    :visible.sync="visible"> -->
+  <div>
+    <div class="my-title">查看</div>
     <div style="margin-left: 20px;margin-right: 20px">
       <e-desc title="基本信息" column="3">
         <e-desc-item label="沟通编码">{{dataForm.coCode}}</e-desc-item>
@@ -74,9 +76,10 @@
       </e-desc>
     </div>
     <span slot="footer" class="dialog-footer">
-      <el-button @click="visible = false">返回</el-button>
+      <el-button @click="onChose">返回</el-button>
     </span>
-  </el-dialog>
+  </div>
+  <!-- </el-dialog> -->
 </template>
 
 <script>
@@ -99,6 +102,9 @@
       }
     },
     methods: {
+      onChose () {
+        this.$emit('onChose')
+      },
       async init (id) {
         this.visible = true
         this.id = id || 0

+ 115 - 109
src/views/modules/cus/communicate.vue

@@ -1,115 +1,117 @@
 <template>
   <div class="stock">
-    <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
-      <el-form-item label="名称">
-        <el-input v-model="dataForm.cusName" placeholder="客户名称" clearable/>
-      </el-form-item>
-      <el-form-item>
-        <el-button @click="getDataList()">查询</el-button>
-        <el-button v-if="isAuth('cus:communication:save')" type="primary" @click="addOrUpdateHandle(0, false)">录入</el-button>
-      </el-form-item>
-    </el-form>
-    <el-table
-      :data="dataList"
-      border
-      v-loading="dataListLoading"
-      style="width: 100%;">
-      <el-table-column
-        label="序号"
-        type="index"
-        width="50"
-        align="center">
-      </el-table-column>
-      <el-table-column
-        prop="coCode"
-        header-align="center"
-        align="center"
-        min-width="120"
-        :show-tooltip-when-overflow="true"
-        label="沟通编码">
-      </el-table-column>
-      <el-table-column
-        prop="customerName"
-        header-align="center"
-        align="center"
-        min-width="120"
-        :show-tooltip-when-overflow="true"
-        label="客户名称">
-      </el-table-column>
-      <el-table-column
-        prop="contact"
-        header-align="center"
-        align="center"
-        label="联系人">
-      </el-table-column>
-      <el-table-column
-        prop="bizManagerName"
-        header-align="center"
-        align="center"
-        min-width="120"
-        label="对接业务员">
-      </el-table-column>
-      <el-table-column
-        prop="coType"
-        :formatter="typeFormat"
-        header-align="center"
-        align="center"
-        label="沟通类别">
-      </el-table-column>
-      <el-table-column
-        prop="createTime"
-        header-align="center"
-        align="center"
-        min-width="160"
-        :show-tooltip-when-overflow="true"
-        label="创建时间">
-      </el-table-column>
-      <el-table-column
-        prop="attachList"
-        header-align="center"
-        align="center"
-        min-width="200"
-        label="附件">
-        <template slot-scope="scope">
-          <div v-for="(item, index) in scope.row.attachList" style="display: inline">
-            <span v-if="index > 0">,</span>
-            <a :key="item.fileName + index" type="primary" href="#" @click="previewFile(item.fileName, item.url)">{{ item.fileName }}</a>
-          </div>
-        </template>
-      </el-table-column>
-      <el-table-column
-        prop="notes"
-        header-align="center"
-        align="center"
-        min-width="180"
-        :show-tooltip-when-overflow="true"
-        label="备注">
-      </el-table-column>
-      <el-table-column
-        fixed="right"
-        header-align="center"
-        align="center"
-        width="150"
-        label="操作">
-        <template slot-scope="scope">
-          <el-button v-if="isAuth('cus:communication:info')" type="text" size="small" @click="detailHandle(scope.row.coId)">查看</el-button>
-          <el-button v-if="isAuth('cus:communication:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.coId, false)">编辑</el-button>
-          <el-button v-if="isAuth('cus:communication:delete')" style="color: red" type="text" size="small" @click="deleteHandle(scope.row.coId)">删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <el-pagination
-      @size-change="sizeChangeHandle"
-      @current-change="currentChangeHandle"
-      :current-page="pageIndex"
-      :page-sizes="[10, 20, 50, 100]"
-      :page-size="pageSize"
-      :total="totalPage"
-      layout="total, sizes, prev, pager, next, jumper">
-    </el-pagination>
+    <template v-if="!addOrUpdateVisible && !detailVisible">
+      <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
+        <el-form-item label="名称">
+          <el-input v-model="dataForm.cusName" placeholder="客户名称" clearable/>
+        </el-form-item>
+        <el-form-item>
+          <el-button @click="getDataList()">查询</el-button>
+          <el-button v-if="isAuth('cus:communication:save')" type="primary" @click="addOrUpdateHandle(0, false)">录入</el-button>
+        </el-form-item>
+      </el-form>
+      <el-table
+        :data="dataList"
+        border
+        v-loading="dataListLoading"
+        style="width: 100%;">
+        <el-table-column
+          label="序号"
+          type="index"
+          width="50"
+          align="center">
+        </el-table-column>
+        <el-table-column
+          prop="coCode"
+          header-align="center"
+          align="center"
+          min-width="120"
+          :show-tooltip-when-overflow="true"
+          label="沟通编码">
+        </el-table-column>
+        <el-table-column
+          prop="customerName"
+          header-align="center"
+          align="center"
+          min-width="120"
+          :show-tooltip-when-overflow="true"
+          label="客户名称">
+        </el-table-column>
+        <el-table-column
+          prop="contact"
+          header-align="center"
+          align="center"
+          label="联系人">
+        </el-table-column>
+        <el-table-column
+          prop="bizManagerName"
+          header-align="center"
+          align="center"
+          min-width="120"
+          label="对接业务员">
+        </el-table-column>
+        <el-table-column
+          prop="coType"
+          :formatter="typeFormat"
+          header-align="center"
+          align="center"
+          label="沟通类别">
+        </el-table-column>
+        <el-table-column
+          prop="createTime"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="创建时间">
+        </el-table-column>
+        <el-table-column
+          prop="attachList"
+          header-align="center"
+          align="center"
+          min-width="200"
+          label="附件">
+          <template slot-scope="scope">
+            <div v-for="(item, index) in scope.row.attachList" style="display: inline">
+              <span v-if="index > 0">,</span>
+              <a :key="item.fileName + index" type="primary" href="#" @click="previewFile(item.fileName, item.url)">{{ item.fileName }}</a>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="notes"
+          header-align="center"
+          align="center"
+          min-width="180"
+          :show-tooltip-when-overflow="true"
+          label="备注">
+        </el-table-column>
+        <el-table-column
+          fixed="right"
+          header-align="center"
+          align="center"
+          width="150"
+          label="操作">
+          <template slot-scope="scope">
+            <el-button v-if="isAuth('cus:communication:info')" type="text" size="small" @click="detailHandle(scope.row.coId)">查看</el-button>
+            <el-button v-if="isAuth('cus:communication:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.coId, false)">编辑</el-button>
+            <el-button v-if="isAuth('cus:communication:delete')" style="color: red" type="text" size="small" @click="deleteHandle(scope.row.coId)">删除</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination
+        @size-change="sizeChangeHandle"
+        @current-change="currentChangeHandle"
+        :current-page="pageIndex"
+        :page-sizes="[10, 20, 50, 100]"
+        :page-size="pageSize"
+        :total="totalPage"
+        layout="total, sizes, prev, pager, next, jumper">
+      </el-pagination>
+    </template>
     <!-- 弹窗, 新增 / 修改 -->
-    <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
-    <detail v-if="detailVisible" ref="detail"/>
+    <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList" @onChose="onChose"></add-or-update>
+    <detail v-if="detailVisible" ref="detail" @onChose="onChose"/>
     <!-- 文件预览 -->
     <preview-component v-if="previewVisible" ref="preview"/>
   </div>
@@ -151,6 +153,10 @@
       this.getDataList()
     },
     methods: {
+      onChose () {
+        this.addOrUpdateVisible = false
+        this.detailVisible = false
+      },
       // 获取沟通类别
       getCoType () {
         getDictList({type: 'communication_type'}).then(({data}) => {

+ 9 - 5
src/views/modules/cus/contract-add-or-update.vue

@@ -1,10 +1,11 @@
 <template>
   <div>
-    <el-dialog
+    <!-- <el-dialog
       :title="!id ? '发起评审': display ? '评审详情' : '修改'"
       width="70%"
       :close-on-click-modal="false"
-      :visible.sync="visible">
+      :visible.sync="visible"> -->
+      <div class="my-title">{{ !id ? '发起评审': display ? '评审详情' : '修改' }}</div>
       <!-- 工作流 -->
       <div v-show="display && dataForm.workFlowBusinessExt">
         <el-steps :active="dataForm.workFlowBusinessExt&&dataForm.workFlowBusinessExt.workFlowProcessStepList?dataForm.workFlowBusinessExt.workFlowProcessStepList.length + 2:0" align-center style="margin-bottom: 20px">
@@ -92,10 +93,10 @@
         </el-row>
       </el-form>
       <span slot="footer" class="dialog-footer">
-        <el-button @click="visible = false">取消</el-button>
+        <el-button @click="onChose">取消</el-button>
         <el-button v-if="!display" type="primary" @click="dataFormSubmit()">确定</el-button>
       </span>
-    </el-dialog>
+    <!-- </el-dialog> -->
   </div>
 </template>
 
@@ -161,6 +162,9 @@
       }
     },
     methods: {
+      onChose () {
+        this.$emit('onChose')
+      },
       async init (id, disable) {
         this.dataForm = {}
         this.display = disable
@@ -230,7 +234,7 @@
                   type: 'success',
                   duration: 1500,
                   onClose: () => {
-                    this.visible = false
+                    this.onChose()
                     this.$emit('refreshDataList')
                   }
                 })

+ 10 - 4
src/views/modules/cus/contract-detail.vue

@@ -1,9 +1,11 @@
 <template>
-  <el-dialog
+  <!-- <el-dialog
     title="查看"
     width="70%"
     :close-on-click-modal="false"
-    :visible.sync="visible">
+    :visible.sync="visible"> -->
+  <div>
+    <div class="my-title">查看</div>
     <div style="margin-left: 20px;margin-right: 20px">
       <!-- 工作流 -->
       <div v-show="dataForm.workFlowBusinessExt">
@@ -42,9 +44,10 @@
       </e-desc>
     </div>
     <span slot="footer" class="dialog-footer">
-      <el-button @click="visible = false">返回</el-button>
+      <el-button @click="onChose">返回</el-button>
     </span>
-  </el-dialog>
+  </div>
+  <!-- </el-dialog> -->
 </template>
 
 <script>
@@ -73,6 +76,9 @@
       }
     },
     methods: {
+      onChose () {
+        this.$emit('onChose')
+      },
       async init (id, businessType) {
         this.visible = true
         this.isFlow = !!(businessType && businessType !== '')

+ 115 - 109
src/views/modules/cus/contract.vue

@@ -1,115 +1,117 @@
 <template>
   <div class="stock">
-    <el-form :inline="true" :model="dataForm" @keyup.enter.native="search()">
-      <el-form-item label="名称">
-        <el-input v-model="dataForm.customerName" placeholder="客户名称" clearable/>
-      </el-form-item>
-      <el-form-item>
-        <el-button @click="search()">查询</el-button>
-        <el-button v-if="isAuth('cus:contract:submit')" type="primary" @click="addOrUpdateHandle(0, false)">发起评审</el-button>
-      </el-form-item>
-    </el-form>
-    <el-table
-      :data="dataList"
-      border
-      v-loading="dataListLoading"
-      style="width: 100%;">
-      <el-table-column
-        label="序号"
-        type="index"
-        width="50"
-        align="center">
-      </el-table-column>
-      <el-table-column
-        prop="reCode"
-        header-align="center"
-        align="center"
-        min-width="180"
-        label="评审编码">
-      </el-table-column>
-      <el-table-column
-        prop="coCode"
-        header-align="center"
-        align="center"
-        min-width="180"
-        label="沟通编码">
-      </el-table-column>
-      <el-table-column
-        prop="customerName"
-        header-align="center"
-        align="center"
-        min-width="160"
-        :show-overflow-tooltip="true"
-        label="客户名称">
-      </el-table-column>
-      <el-table-column
-        prop="contact"
-        header-align="center"
-        align="center"
-        min-width="100"
-        label="联系人">
-      </el-table-column>
-      <el-table-column
-        prop="bizManagerName"
-        header-align="center"
-        align="center"
-        min-width="100"
-        label="对接业务员">
-      </el-table-column>
-      <el-table-column
-        prop="reType"
-        :formatter="typeFormat"
-        header-align="center"
-        align="center"
-        label="类别">
-      </el-table-column>
-      <el-table-column
-        prop="createTime"
-        header-align="center"
-        align="center"
-        min-width="160"
-        label="创建时间">
-      </el-table-column>
-      <el-table-column
-        prop="state"
-        :formatter="stateFormat"
-        header-align="center"
-        align="center"
-        label="状态">
-      </el-table-column>
-      <el-table-column
-        prop="notes"
-        header-align="center"
-        align="center"
-        min-width="180"
-        :show-overflow-tooltip="true"
-        label="备注">
-      </el-table-column>
-      <el-table-column
-        fixed="right"
-        header-align="center"
-        align="center"
-        width="150"
-        label="操作">
-        <template slot-scope="scope">
-          <el-button v-if="isAuth('cus:contract:info')" type="text" size="small" @click="detailHandle(scope.row.reId)">查看</el-button>
-          <el-button v-if="isAuth('cus:contract:revoke') && (scope.row.state === '1' || scope.row.state === '2')" type="text" size="small" @click="cancelContract(scope.row)">撤回</el-button>
-          <el-button v-if="isAuth('cus:contract:submit') && (scope.row.state === '0')" type="text" size="small" @click="addOrUpdateHandle(scope.row.reId, false)">编辑</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <el-pagination
-      @size-change="sizeChangeHandle"
-      @current-change="currentChangeHandle"
-      :current-page="pageIndex"
-      :page-sizes="[10, 20, 50, 100]"
-      :page-size="pageSize"
-      :total="totalPage"
-      layout="total, sizes, prev, pager, next, jumper">
-    </el-pagination>
+    <template v-if="!addOrUpdateVisible && !detailVisible">
+      <el-form :inline="true" :model="dataForm" @keyup.enter.native="search()">
+        <el-form-item label="名称">
+          <el-input v-model="dataForm.customerName" placeholder="客户名称" clearable/>
+        </el-form-item>
+        <el-form-item>
+          <el-button @click="search()">查询</el-button>
+          <el-button v-if="isAuth('cus:contract:submit')" type="primary" @click="addOrUpdateHandle(0, false)">发起评审</el-button>
+        </el-form-item>
+      </el-form>
+      <el-table
+        :data="dataList"
+        border
+        v-loading="dataListLoading"
+        style="width: 100%;">
+        <el-table-column
+          label="序号"
+          type="index"
+          width="50"
+          align="center">
+        </el-table-column>
+        <el-table-column
+          prop="reCode"
+          header-align="center"
+          align="center"
+          min-width="180"
+          label="评审编码">
+        </el-table-column>
+        <el-table-column
+          prop="coCode"
+          header-align="center"
+          align="center"
+          min-width="180"
+          label="沟通编码">
+        </el-table-column>
+        <el-table-column
+          prop="customerName"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-overflow-tooltip="true"
+          label="客户名称">
+        </el-table-column>
+        <el-table-column
+          prop="contact"
+          header-align="center"
+          align="center"
+          min-width="100"
+          label="联系人">
+        </el-table-column>
+        <el-table-column
+          prop="bizManagerName"
+          header-align="center"
+          align="center"
+          min-width="100"
+          label="对接业务员">
+        </el-table-column>
+        <el-table-column
+          prop="reType"
+          :formatter="typeFormat"
+          header-align="center"
+          align="center"
+          label="类别">
+        </el-table-column>
+        <el-table-column
+          prop="createTime"
+          header-align="center"
+          align="center"
+          min-width="160"
+          label="创建时间">
+        </el-table-column>
+        <el-table-column
+          prop="state"
+          :formatter="stateFormat"
+          header-align="center"
+          align="center"
+          label="状态">
+        </el-table-column>
+        <el-table-column
+          prop="notes"
+          header-align="center"
+          align="center"
+          min-width="180"
+          :show-overflow-tooltip="true"
+          label="备注">
+        </el-table-column>
+        <el-table-column
+          fixed="right"
+          header-align="center"
+          align="center"
+          width="150"
+          label="操作">
+          <template slot-scope="scope">
+            <el-button v-if="isAuth('cus:contract:info')" type="text" size="small" @click="detailHandle(scope.row.reId)">查看</el-button>
+            <el-button v-if="isAuth('cus:contract:revoke') && (scope.row.state === '1' || scope.row.state === '2')" type="text" size="small" @click="cancelContract(scope.row)">撤回</el-button>
+            <el-button v-if="isAuth('cus:contract:submit') && (scope.row.state === '0')" type="text" size="small" @click="addOrUpdateHandle(scope.row.reId, false)">编辑</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination
+        @size-change="sizeChangeHandle"
+        @current-change="currentChangeHandle"
+        :current-page="pageIndex"
+        :page-sizes="[10, 20, 50, 100]"
+        :page-size="pageSize"
+        :total="totalPage"
+        layout="total, sizes, prev, pager, next, jumper">
+      </el-pagination>
+    </template>
     <!-- 弹窗, 新增 / 修改 -->
-    <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
-    <detail v-if="detailVisible" ref="detail"/>
+    <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList" @onChose="onChose"></add-or-update>
+    <detail v-if="detailVisible" ref="detail" @onChose="onChose"/>
   </div>
 </template>
 
@@ -144,6 +146,10 @@
       this.getDataList()
     },
     methods: {
+      onChose () {
+        this.addOrUpdateVisible = false
+        this.detailVisible = false
+      },
       // 获取类型列表
       getTypeList () {
         getDictList({type: 'review_type'}).then(({data}) => {

+ 11 - 5
src/views/modules/cus/customer-add-or-update.vue

@@ -1,8 +1,10 @@
 <template>
-  <el-dialog
+  <!-- <el-dialog
     :title="!id ? '新增' : display ? '详情' : '编辑'"
     :close-on-click-modal="false"
-    :visible.sync="visible">
+    :visible.sync="visible"> -->
+  <div>
+    <div class="my-title">{{ !id ? '新增' : display ? '详情' : '编辑' }}</div>
     <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="100px">
       <h4>基础信息</h4>
       <el-form-item label="客户名称" prop="customerName">
@@ -87,10 +89,11 @@
       </el-form-item>
     </el-form>
     <span slot="footer" class="dialog-footer">
-      <el-button @click="visible = false">取消</el-button>
+      <el-button @click="onChose">取消</el-button>
       <el-button v-if="!display" type="primary" @click="dataFormSubmit()">确定</el-button>
     </span>
-  </el-dialog>
+  </div>
+  <!-- </el-dialog> -->
 </template>
 
 <script>
@@ -153,6 +156,9 @@
       }
     },
     methods: {
+      onChose () {
+        this.$emit('onChose')
+      },
       async init (id, disabled) {
         this.dataForm = {}
         this.display = disabled
@@ -194,7 +200,7 @@
                   type: 'success',
                   duration: 1500,
                   onClose: () => {
-                    this.visible = false
+                    this.onChose()
                     this.$emit('refreshDataList')
                   }
                 })

+ 10 - 4
src/views/modules/cus/customer-detail.vue

@@ -1,9 +1,11 @@
 <template>
-  <el-dialog
+  <!-- <el-dialog
     title="查看"
     width="70%"
     :close-on-click-modal="false"
-    :visible.sync="visible">
+    :visible.sync="visible"> -->
+  <div>
+    <div class="my-title">查看</div>
     <div style="margin-left: 20px;margin-right: 20px">
       <e-desc title="基本信息" column="3">
         <e-desc-item label="公司名称">{{dataForm.customerName}}</e-desc-item>
@@ -34,9 +36,10 @@
       </e-desc>
     </div>
     <span slot="footer" class="dialog-footer">
-      <el-button @click="visible = false">返回</el-button>
+      <el-button @click="onChose">返回</el-button>
     </span>
-  </el-dialog>
+  </div>
+  <!-- </el-dialog> -->
 </template>
 
 <script>
@@ -55,6 +58,9 @@
       }
     },
     methods: {
+      onChose () {
+        this.$emit('onChose')
+      },
       async init (id) {
         this.visible = true
         this.id = id || 0

+ 113 - 107
src/views/modules/cus/customer.vue

@@ -1,113 +1,115 @@
 <template>
   <div class="stock">
-    <el-form :inline="true" :model="dataForm" @keyup.enter.native="search()">
-      <el-form-item label="名称">
-        <el-input v-model="dataForm.customerName" placeholder="客户名称" clearable/>
-      </el-form-item>
-      <el-form-item label="客户级别">
-        <el-select
-          v-model="dataForm.level"
-          remote
-          placeholder="请选择">
-          <el-option
-            v-for="item in options"
-            :key="item.code"
-            :label="item.value"
-            :value="item.code">
-          </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item>
-        <el-button @click="search()">查询</el-button>
-        <el-button v-if="isAuth('cus:customer:save')" type="primary" @click="addOrUpdateHandle(0, false)">新增客户</el-button>
-      </el-form-item>
-    </el-form>
-    <el-table
-      :data="dataList"
-      border
-      v-loading="dataListLoading"
-      style="width: 100%;">
-      <el-table-column
-        label="序号"
-        type="index"
-        width="50"
-        align="center">
-      </el-table-column>
-      <el-table-column
-        prop="customerName"
-        header-align="center"
-        align="center"
-        min-width="120"
-        :show-tooltip-when-overflow="true"
-        label="客户名称">
-      </el-table-column>
-      <el-table-column
-        prop="level"
-        :formatter="levelFormat"
-        header-align="center"
-        align="center"
-        label="级别">
-      </el-table-column>
-      <el-table-column
-        prop="contact"
-        header-align="center"
-        align="center"
-        min-width="120"
-        label="联系人">
-      </el-table-column>
-      <el-table-column
-        prop="contactTel"
-        header-align="center"
-        align="center"
-        min-width="120"
-        label="电话">
-      </el-table-column>
-      <el-table-column
-        prop="address"
-        header-align="center"
-        align="center"
-        width="200"
-        :show-tooltip-when-overflow="true"
-        label="地址">
-      </el-table-column>
-      <el-table-column
-        prop="bizManagerName"
-        header-align="center"
-        align="center"
-        label="对接业务员">
-      </el-table-column>
-      <el-table-column
-        prop="notes"
-        header-align="center"
-        align="center"
-        min-width="180"
-        :show-tooltip-when-overflow="true"
-        label="备注">
-      </el-table-column>
-      <el-table-column
-        fixed="right"
-        header-align="center"
-        align="center"
-        width="150"
-        label="操作">
-        <template slot-scope="scope">
-          <el-button v-if="isAuth('cus:customer:info')" type="text" size="small" @click="detailHandle(scope.row.customerId)">查看</el-button>
-          <el-button v-if="isAuth('cus:customer:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.customerId, false)">编辑</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <el-pagination
-      @size-change="sizeChangeHandle"
-      @current-change="currentChangeHandle"
-      :current-page="pageIndex"
-      :page-sizes="[10, 20, 50, 100]"
-      :page-size="pageSize"
-      :total="totalPage"
-      layout="total, sizes, prev, pager, next, jumper">
-    </el-pagination>
+    <template v-if="!addOrUpdateVisible && !detailVisible">
+      <el-form :inline="true" :model="dataForm" @keyup.enter.native="search()">
+        <el-form-item label="名称">
+          <el-input v-model="dataForm.customerName" placeholder="客户名称" clearable/>
+        </el-form-item>
+        <el-form-item label="客户级别">
+          <el-select
+            v-model="dataForm.level"
+            remote
+            placeholder="请选择">
+            <el-option
+              v-for="item in options"
+              :key="item.code"
+              :label="item.value"
+              :value="item.code">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-button @click="search()">查询</el-button>
+          <el-button v-if="isAuth('cus:customer:save')" type="primary" @click="addOrUpdateHandle(0, false)">新增客户</el-button>
+        </el-form-item>
+      </el-form>
+      <el-table
+        :data="dataList"
+        border
+        v-loading="dataListLoading"
+        style="width: 100%;">
+        <el-table-column
+          label="序号"
+          type="index"
+          width="50"
+          align="center">
+        </el-table-column>
+        <el-table-column
+          prop="customerName"
+          header-align="center"
+          align="center"
+          min-width="120"
+          :show-tooltip-when-overflow="true"
+          label="客户名称">
+        </el-table-column>
+        <el-table-column
+          prop="level"
+          :formatter="levelFormat"
+          header-align="center"
+          align="center"
+          label="级别">
+        </el-table-column>
+        <el-table-column
+          prop="contact"
+          header-align="center"
+          align="center"
+          min-width="120"
+          label="联系人">
+        </el-table-column>
+        <el-table-column
+          prop="contactTel"
+          header-align="center"
+          align="center"
+          min-width="120"
+          label="电话">
+        </el-table-column>
+        <el-table-column
+          prop="address"
+          header-align="center"
+          align="center"
+          width="200"
+          :show-tooltip-when-overflow="true"
+          label="地址">
+        </el-table-column>
+        <el-table-column
+          prop="bizManagerName"
+          header-align="center"
+          align="center"
+          label="对接业务员">
+        </el-table-column>
+        <el-table-column
+          prop="notes"
+          header-align="center"
+          align="center"
+          min-width="180"
+          :show-tooltip-when-overflow="true"
+          label="备注">
+        </el-table-column>
+        <el-table-column
+          fixed="right"
+          header-align="center"
+          align="center"
+          width="150"
+          label="操作">
+          <template slot-scope="scope">
+            <el-button v-if="isAuth('cus:customer:info')" type="text" size="small" @click="detailHandle(scope.row.customerId)">查看</el-button>
+            <el-button v-if="isAuth('cus:customer:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.customerId, false)">编辑</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination
+        @size-change="sizeChangeHandle"
+        @current-change="currentChangeHandle"
+        :current-page="pageIndex"
+        :page-sizes="[10, 20, 50, 100]"
+        :page-size="pageSize"
+        :total="totalPage"
+        layout="total, sizes, prev, pager, next, jumper">
+      </el-pagination>
+    </template>
     <!-- 弹窗, 新增 / 修改 -->
-    <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
-    <detail v-if="detailVisible" ref="detail"/>
+    <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList" @onChose="onChose"></add-or-update>
+    <detail v-if="detailVisible" ref="detail" @onChose="onChose"/>
   </div>
 </template>
 
@@ -142,6 +144,10 @@
       this.getDataList()
     },
     methods: {
+      onChose () {
+        this.addOrUpdateVisible = false
+        this.detailVisible = false
+      },
       // 查询
       search () {
         this.pageIndex = 1

+ 5 - 4
src/views/modules/msg-center/announcement-detail.vue

@@ -1,11 +1,12 @@
 <template>
   <div>
-    <el-dialog
+    <!-- <el-dialog
       title="查看"
       width="60%"
       :close-on-click-modal="false"
       @close="closeDialog"
-      :visible.sync="visible">
+      :visible.sync="visible"> -->
+      <div class="my-title">查看</div>
       <div style="margin-left: 20px;margin-right: 20px">
         <e-desc title="基本信息" column="2">
           <e-desc-item label="公告主题名称">{{dataForm.title}}</e-desc-item>
@@ -25,7 +26,7 @@
       <span slot="footer" class="dialog-footer">
       <el-button @click="closeDialog">返回</el-button>
     </span>
-    </el-dialog>
+    <!-- </el-dialog> -->
     <!-- 文件预览 -->
     <preview-component v-if="previewVisible" ref="preview"/>
   </div>
@@ -70,7 +71,7 @@
       },
       // 关闭页面
       closeDialog () {
-        this.visible = false
+        this.$emit('onChose')
         this.$emit('refreshDataList')
       },
       // 预览

+ 112 - 107
src/views/modules/msg-center/announcement.vue

@@ -1,114 +1,116 @@
 <!-- 订单 -->
 <template>
   <div class="order">
-    <el-form :inline="true" :model="dataForm" @keyup.enter.native="queryData()">
-      <el-form-item label="标题">
-        <el-input v-model="dataForm.title" clearable/>
-      </el-form-item>
-      <el-form-item>
-        <el-button @click="queryData()">查询</el-button>
-      </el-form-item>
-    </el-form>
-    <el-table
-      :data="dataList"
-      border
-      v-loading="dataListLoading"
-      @selection-change="selectionChangeHandle"
-      style="width: 100%;">
-      <el-table-column
-        label="序号"
-        type="index"
-        width="50"
-        align="center">
-      </el-table-column>
-      <el-table-column
-        prop="title"
-        header-align="center"
-        align="center"
-        width="180"
-        :show-tooltip-when-overflow="true"
-        label="公告主题名称">
-      </el-table-column>
-      <el-table-column
-        prop="levelName"
-        header-align="center"
-        align="center"
-        label="级别">
-      </el-table-column>
-      <el-table-column
-        prop="content"
-        header-align="center"
-        align="center"
-        width="200"
-        :show-tooltip-when-overflow="true"
-        label="公告内容">
-      </el-table-column>
-      <el-table-column
-        prop="attachList"
-        header-align="center"
-        align="center"
-        min-width="200"
-        label="附件">
-        <template slot-scope="scope">
-          <div v-for="(item, index) in scope.row.attachList" style="display: inline">
-            <span v-if="index > 0">,</span>
-            <a :key="item.fileName + index" type="primary" href="#" @click="previewFile(item.fileName, item.url)">{{ item.fileName }}</a>
-          </div>
-        </template>
-      </el-table-column>
-      <el-table-column
-        prop="isRead"
-        header-align="center"
-        align="center"
-        label="是否已读">
-        <template slot-scope="scope">
-          <span v-if="Number(scope.row.isRead) === 0" style="color: red">未读</span>
-          <span v-else>已读</span>
-        </template>
-      </el-table-column>
-      <el-table-column
-        prop="publisherName"
-        header-align="center"
-        align="center"
-        label="发布人">
-      </el-table-column>
-      <el-table-column
-        prop="createTime"
-        header-align="center"
-        align="center"
-        width="160"
-        label="发布时间">
-      </el-table-column>
-      <el-table-column
-        prop="notes"
-        header-align="center"
-        align="center"
-        width="200"
-        :show-tooltip-when-overflow="true"
-        label="备注">
-      </el-table-column>
-      <el-table-column
-        fixed="right"
-        header-align="center"
-        align="center"
-        width="150"
-        label="操作">
-        <template slot-scope="scope">
-          <el-button type="text" size="small" @click="detailHandle(scope.row)">查看</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <el-pagination
-      @size-change="sizeChangeHandle"
-      @current-change="currentChangeHandle"
-      :current-page="pageIndex"
-      :page-sizes="[10, 20, 50, 100]"
-      :page-size="pageSize"
-      :total="totalPage"
-      layout="total, sizes, prev, pager, next, jumper">
-    </el-pagination>
+    <template v-if="!addOrUpdateVisible">
+      <el-form :inline="true" :model="dataForm" @keyup.enter.native="queryData()">
+        <el-form-item label="标题">
+          <el-input v-model="dataForm.title" clearable/>
+        </el-form-item>
+        <el-form-item>
+          <el-button @click="queryData()">查询</el-button>
+        </el-form-item>
+      </el-form>
+      <el-table
+        :data="dataList"
+        border
+        v-loading="dataListLoading"
+        @selection-change="selectionChangeHandle"
+        style="width: 100%;">
+        <el-table-column
+          label="序号"
+          type="index"
+          width="50"
+          align="center">
+        </el-table-column>
+        <el-table-column
+          prop="title"
+          header-align="center"
+          align="center"
+          width="180"
+          :show-tooltip-when-overflow="true"
+          label="公告主题名称">
+        </el-table-column>
+        <el-table-column
+          prop="levelName"
+          header-align="center"
+          align="center"
+          label="级别">
+        </el-table-column>
+        <el-table-column
+          prop="content"
+          header-align="center"
+          align="center"
+          width="200"
+          :show-tooltip-when-overflow="true"
+          label="公告内容">
+        </el-table-column>
+        <el-table-column
+          prop="attachList"
+          header-align="center"
+          align="center"
+          min-width="200"
+          label="附件">
+          <template slot-scope="scope">
+            <div v-for="(item, index) in scope.row.attachList" style="display: inline">
+              <span v-if="index > 0">,</span>
+              <a :key="item.fileName + index" type="primary" href="#" @click="previewFile(item.fileName, item.url)">{{ item.fileName }}</a>
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="isRead"
+          header-align="center"
+          align="center"
+          label="是否已读">
+          <template slot-scope="scope">
+            <span v-if="Number(scope.row.isRead) === 0" style="color: red">未读</span>
+            <span v-else>已读</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="publisherName"
+          header-align="center"
+          align="center"
+          label="发布人">
+        </el-table-column>
+        <el-table-column
+          prop="createTime"
+          header-align="center"
+          align="center"
+          width="160"
+          label="发布时间">
+        </el-table-column>
+        <el-table-column
+          prop="notes"
+          header-align="center"
+          align="center"
+          width="200"
+          :show-tooltip-when-overflow="true"
+          label="备注">
+        </el-table-column>
+        <el-table-column
+          fixed="right"
+          header-align="center"
+          align="center"
+          width="150"
+          label="操作">
+          <template slot-scope="scope">
+            <el-button type="text" size="small" @click="detailHandle(scope.row)">查看</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination
+        @size-change="sizeChangeHandle"
+        @current-change="currentChangeHandle"
+        :current-page="pageIndex"
+        :page-sizes="[10, 20, 50, 100]"
+        :page-size="pageSize"
+        :total="totalPage"
+        layout="total, sizes, prev, pager, next, jumper">
+      </el-pagination>
+    </template>
     <!-- 弹窗,详情 -->
-    <detail v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getAnnouncementList"></detail>
+    <detail v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getAnnouncementList" @onChose="onChose"></detail>
     <!-- 文件预览 -->
     <preview-component v-if="previewVisible" ref="preview"/>
   </div>
@@ -163,6 +165,9 @@
       }
     },
     methods: {
+      onChose () {
+        this.addOrUpdateVisible = false
+      },
       // 查询
       queryData () {
         this.pageIndex = 1

+ 4 - 1
src/views/modules/msg-center/approve-add-or-update.vue

@@ -19,7 +19,7 @@
       <product-detail ref="productDetail" @approveFinished="approveFinished"/>
     </div>
     <div v-show="businessType === 'pro_technology_flow'">
-      <craft-detail ref="craftDetail" @approveFinished="approveFinished"/>
+      <craft-detail ref="craftDetail" @approveFinished="approveFinished" @onChose="onChose"/>
     </div>
   </div>
 </template>
@@ -45,6 +45,9 @@
       }
     },
     methods: {
+      onChose () {
+        this.$emit('onChose')
+      },
       async init (businessType, businessId, display) {
         this.businessType = businessType || ''
         this.businessId = businessId || 0

+ 117 - 112
src/views/modules/msg-center/approve.vue

@@ -1,125 +1,127 @@
 <!-- 订单 -->
 <template>
   <div class="order">
-    <el-form :inline="true" :model="dataForm" @keyup.enter.native="queryData()">
-      <el-form-item label="业务类型">
-        <el-select
-          v-model="dataForm.businessType"
-          placeholder="请选择">
+    <template v-if="!addOrUpdateVisible">
+      <el-form :inline="true" :model="dataForm" @keyup.enter.native="queryData()">
+        <el-form-item label="业务类型">
+          <el-select
+            v-model="dataForm.businessType"
+            placeholder="请选择">
+            <el-option
+              v-for="item in optionsType"
+              :key="item.code"
+              :label="item.value"
+              :value="item.code">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="状态">
+          <el-select
+            v-model="dataForm.state"
+            placeholder="请选择">
           <el-option
-            v-for="item in optionsType"
+            v-for="item in optionsState"
             :key="item.code"
             :label="item.value"
             :value="item.code">
           </el-option>
         </el-select>
-      </el-form-item>
-      <el-form-item label="状态">
-        <el-select
-          v-model="dataForm.state"
-          placeholder="请选择">
-         <el-option
-           v-for="item in optionsState"
-           :key="item.code"
-           :label="item.value"
-           :value="item.code">
-         </el-option>
-       </el-select>
-      </el-form-item>
-      <el-form-item label="申请日期">
-        <el-date-picker
-          v-model="dataForm.createTime"
-          value-format="yyyy-MM-dd"
-          type="date">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item>
-        <el-button @click="queryData()">查询</el-button>
-      </el-form-item>
-    </el-form>
-    <el-table
-      :data="dataList"
-      border
-      v-loading="dataListLoading"
-      @selection-change="selectionChangeHandle"
-      style="width: 100%;">
-      <el-table-column
-        label="序号"
-        type="index"
-        width="50"
-        align="center">
-      </el-table-column>
-      <el-table-column
-        prop="businessTypeName"
-        header-align="center"
-        align="center"
-        min-width="180"
-        label="流程类别">
-      </el-table-column>
-      <el-table-column
-        prop="createTime"
-        header-align="center"
-        align="center"
-        min-width="160"
-        :show-overflow-tooltip="true"
-        label="申请时间">
-      </el-table-column>
-      <el-table-column
-        prop="updateTime"
-        header-align="center"
-        align="center"
-        min-width="160"
-        :show-overflow-tooltip="true"
-        label="更新时间">
-      </el-table-column>
-      <el-table-column
-        prop="state"
-        header-align="center"
-        align="center"
-        min-width="100"
-        label="状态">
-        <template slot-scope="scope">
-          <span>{{(optionsState.find(t=>t.code === scope.row.state.toString())).value}}</span>
-        </template>
-      </el-table-column>
-      <el-table-column
-        prop="creatorName"
-        header-align="center"
-        align="center"
-        min-width="120"
-        label="申请人">
-      </el-table-column>
-      <el-table-column
-        prop="orgName"
-        header-align="center"
-        align="center"
-        min-width="140"
-        :show-tooltip-when-overflow="true"
-        label="申请部门">
-      </el-table-column>
-      <el-table-column
-        fixed="right"
-        header-align="center"
-        align="center"
-        width="80"
-        label="操作">
-        <template slot-scope="scope">
-          <el-button v-if="Number(scope.row.state) !== 3 && checkUser(scope.row)" type="text" size="small" @click="addOrUpdateHandle(scope.row)">处理</el-button>
-          <el-button v-else type="text" size="small" @click="detailHandle(scope.row)">查看</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <el-pagination
-      @size-change="sizeChangeHandle"
-      @current-change="currentChangeHandle"
-      :current-page="pageIndex"
-      :page-sizes="[10, 20, 50, 100]"
-      :page-size="pageSize"
-      :total="totalPage"
-      layout="total, sizes, prev, pager, next, jumper">
-    </el-pagination>
+        </el-form-item>
+        <el-form-item label="申请日期">
+          <el-date-picker
+            v-model="dataForm.createTime"
+            value-format="yyyy-MM-dd"
+            type="date">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item>
+          <el-button @click="queryData()">查询</el-button>
+        </el-form-item>
+      </el-form>
+      <el-table
+        :data="dataList"
+        border
+        v-loading="dataListLoading"
+        @selection-change="selectionChangeHandle"
+        style="width: 100%;">
+        <el-table-column
+          label="序号"
+          type="index"
+          width="50"
+          align="center">
+        </el-table-column>
+        <el-table-column
+          prop="businessTypeName"
+          header-align="center"
+          align="center"
+          min-width="180"
+          label="流程类别">
+        </el-table-column>
+        <el-table-column
+          prop="createTime"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-overflow-tooltip="true"
+          label="申请时间">
+        </el-table-column>
+        <el-table-column
+          prop="updateTime"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-overflow-tooltip="true"
+          label="更新时间">
+        </el-table-column>
+        <el-table-column
+          prop="state"
+          header-align="center"
+          align="center"
+          min-width="100"
+          label="状态">
+          <template slot-scope="scope">
+            <span>{{(optionsState.find(t=>t.code === scope.row.state.toString())).value}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="creatorName"
+          header-align="center"
+          align="center"
+          min-width="120"
+          label="申请人">
+        </el-table-column>
+        <el-table-column
+          prop="orgName"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="申请部门">
+        </el-table-column>
+        <el-table-column
+          fixed="right"
+          header-align="center"
+          align="center"
+          width="80"
+          label="操作">
+          <template slot-scope="scope">
+            <el-button v-if="Number(scope.row.state) !== 3 && checkUser(scope.row)" type="text" size="small" @click="addOrUpdateHandle(scope.row)">处理</el-button>
+            <el-button v-else type="text" size="small" @click="detailHandle(scope.row)">查看</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination
+        @size-change="sizeChangeHandle"
+        @current-change="currentChangeHandle"
+        :current-page="pageIndex"
+        :page-sizes="[10, 20, 50, 100]"
+        :page-size="pageSize"
+        :total="totalPage"
+        layout="total, sizes, prev, pager, next, jumper">
+      </el-pagination>
+    </template>
     <!-- 弹窗, 新增 / 修改 -->
-    <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getApprovalList"/>
+    <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getApprovalList" @onChose="onChose"/>
   </div>
 </template>
 
@@ -201,6 +203,9 @@
       }
     },
     methods: {
+      onChose () {
+        this.addOrUpdateVisible = false
+      },
       // 查询
       queryData () {
         this.pageIndex = 1

+ 9 - 5
src/views/modules/order/dispatch-arrived.vue

@@ -1,10 +1,11 @@
 <template>
   <div>
-    <el-dialog
+    <!-- <el-dialog
       title="订单送达"
       width="50%"
       :close-on-click-modal="false"
-      :visible.sync="visible">
+      :visible.sync="visible"> -->
+      <div class="my-title">订单送达</div>
       <!-- 表单 -->
       <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="auto">
         <el-row class="my-row">
@@ -33,10 +34,10 @@
         </el-row>
       </el-form>
       <span slot="footer" class="dialog-footer">
-          <el-button @click="visible = false">取消</el-button>
+          <el-button @click="onChose">取消</el-button>
           <el-button type="primary" @click="dataFormSubmit()">确定</el-button>
         </span>
-    </el-dialog>
+    <!-- </el-dialog> -->
   </div>
 </template>
 
@@ -58,6 +59,9 @@
       }
     },
     methods: {
+      onChose () {
+        this.$emit('onChose')
+      },
       async init (orderId, orderCode) {
         if (!orderId) return
         this.fileList = []
@@ -102,7 +106,7 @@
                   type: 'success',
                   duration: 1500,
                   onClose: () => {
-                    this.visible = false
+                    this.onChose()
                     this.$emit('refreshDataList')
                   }
                 })

+ 88 - 84
src/views/modules/order/dispatch.vue

@@ -1,92 +1,93 @@
 <template>
   <div class="order">
-    <el-form :inline="true" :model="dataForm" @keyup.enter.native="queryData()">
-      <el-form-item label="订单编码">
-        <el-input v-model="dataForm.orderCode" placeholder="订单编码" clearable></el-input>
-      </el-form-item>
-      <el-form-item>
-        <el-button @click="queryData()">查询</el-button>
-<!--        <el-button v-if="isAuth('order:ctl:list')" @click="addOrUpdateHandle(0, false)" type="primary">查看</el-button>-->
-      </el-form-item>
-    </el-form>
-    <el-table
-      :data="dataList"
-      border
-      v-loading="dataListLoading"
-      @selection-change="selectionChangeHandle"
-      style="width: 100%;">
-      <el-table-column
-        label="序号"
-        type="index"
-        width="50"
-        align="center">
-      </el-table-column>
-      <el-table-column
-        prop="orderCode"
-        header-align="center"
-        align="center"
-        min-width="140"
-        :show-tooltip-when-overflow="true"
-        label="订单编码">
-      </el-table-column>
-      <el-table-column
-        prop="delivererName"
-        header-align="center"
-        align="center"
-        min-width="120"
-        :show-overflow-tooltip="true"
-        label="发货人姓名">
-      </el-table-column>
-      <el-table-column
-        prop="deliverTime"
-        header-align="center"
-        align="center"
-        min-width="160"
-        :show-tooltip-when-overflow="true"
-        label="发货时间">
-      </el-table-column>
-      <el-table-column
-        prop="arrivedTime"
-        header-align="center"
-        align="center"
-        min-width="160"
-        label="送达时间">
-      </el-table-column>
-      <el-table-column
-        prop="customerFeedback"
-        header-align="center"
-        align="center"
-        min-width="180"
-        :show-tooltip-when-overflow="true"
-        label="客户反馈">
-      </el-table-column>
-      <el-table-column
-        prop="attachList"
-        header-align="center"
-        align="center"
-        min-width="200"
-        label="附件">
-        <template slot-scope="scope">
-          <div v-for="(item, index) in scope.row.attachList" style="display: inline">
-            <span v-if="index > 0">,</span>
-            <a :key="item.fileName + index" type="primary" href="#" @click="previewFile(item.fileName, item.url)">{{ item.fileName }}</a>
-          </div>
-        </template>
-      </el-table-column>
-    </el-table>
-    <el-pagination
-      @size-change="sizeChangeHandle"
-      @current-change="currentChangeHandle"
-      :current-page="pageIndex"
-      :page-sizes="[10, 20, 50, 100]"
-      :page-size="pageSize"
-      :total="totalPage"
-      layout="total, sizes, prev, pager, next, jumper">
-    </el-pagination>
+    <template v-if="!previewVisible">
+      <el-form :inline="true" :model="dataForm" @keyup.enter.native="queryData()">
+        <el-form-item label="订单编码">
+          <el-input v-model="dataForm.orderCode" placeholder="订单编码" clearable></el-input>
+        </el-form-item>
+        <el-form-item>
+          <el-button @click="queryData()">查询</el-button>
+        </el-form-item>
+      </el-form>
+      <el-table
+        :data="dataList"
+        border
+        v-loading="dataListLoading"
+        @selection-change="selectionChangeHandle"
+        style="width: 100%;">
+        <el-table-column
+          label="序号"
+          type="index"
+          width="50"
+          align="center">
+        </el-table-column>
+        <el-table-column
+          prop="orderCode"
+          header-align="center"
+          align="center"
+          min-width="140"
+          :show-tooltip-when-overflow="true"
+          label="订单编码">
+        </el-table-column>
+        <el-table-column
+          prop="delivererName"
+          header-align="center"
+          align="center"
+          min-width="120"
+          :show-overflow-tooltip="true"
+          label="发货人姓名">
+        </el-table-column>
+        <el-table-column
+          prop="deliverTime"
+          header-align="center"
+          align="center"
+          min-width="160"
+          :show-tooltip-when-overflow="true"
+          label="发货时间">
+        </el-table-column>
+        <el-table-column
+          prop="arrivedTime"
+          header-align="center"
+          align="center"
+          min-width="160"
+          label="送达时间">
+        </el-table-column>
+        <el-table-column
+          prop="customerFeedback"
+          header-align="center"
+          align="center"
+          min-width="180"
+          :show-tooltip-when-overflow="true"
+          label="客户反馈">
+        </el-table-column>
+        <el-table-column
+          prop="attachList"
+          header-align="center"
+          align="center"
+          min-width="200"
+          label="附件">
+          <template slot-scope="scope">
+            <div v-for="(item, index) in scope.row.attachList" style="display: inline">
+              <span v-if="index > 0">,</span>
+              <a :key="item.fileName + index" type="primary" href="#" @click="previewFile(item.fileName, item.url)">{{ item.fileName }}</a>
+            </div>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination
+        @size-change="sizeChangeHandle"
+        @current-change="currentChangeHandle"
+        :current-page="pageIndex"
+        :page-sizes="[10, 20, 50, 100]"
+        :page-size="pageSize"
+        :total="totalPage"
+        layout="total, sizes, prev, pager, next, jumper">
+      </el-pagination>
+    </template>
 <!--    <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>-->
 <!--    <detail v-if="detailVisible" ref="detail"/>-->
     <!-- 文件预览 -->
-    <preview-component v-if="previewVisible" ref="preview"/>
+    <preview-component v-if="previewVisible" ref="preview" @onChose="onChose"/>
   </div>
 </template>
 
@@ -113,6 +114,9 @@ export default {
     }
   },
   methods: {
+    onChose () {
+      this.previewVisible = false
+    },
       // 查询
     queryData () {
       this.pageIndex = 1

+ 9 - 5
src/views/modules/order/order-add-or-update.vue

@@ -1,10 +1,11 @@
 <template>
   <div>
-    <el-dialog
+    <!-- <el-dialog
       :title="!id ? '新增': display ? '详情' : '修改'"
       width="70%"
       :close-on-click-modal="false"
-      :visible.sync="visible">
+      :visible.sync="visible"> -->
+      <div class="my-title">{{ !id ? '新增': display ? '详情' : '修改' }}</div>
       <!-- 工作流 -->
       <div v-show="display && dataForm.workFlowBusinessExt">
         <el-steps :active="dataForm.workFlowBusinessExt&&dataForm.workFlowBusinessExt.workFlowProcessStepList?dataForm.workFlowBusinessExt.workFlowProcessStepList.length + 2:0" align-center style="margin-bottom: 20px">
@@ -155,10 +156,10 @@
         </el-row>
       </el-form>
       <span slot="footer" class="dialog-footer">
-          <el-button @click="visible = false">取消</el-button>
+          <el-button @click="onChose">取消</el-button>
           <el-button v-if="!display" type="primary" @click="dataFormSubmit()">确定</el-button>
         </span>
-    </el-dialog>
+    <!-- </el-dialog> -->
     <template-chose v-if="productListVisible" ref="productList" @addItems="addProductItems" />
   </div>
 </template>
@@ -201,6 +202,9 @@
       }
     },
     methods: {
+      onChose () {
+        this.$emit('onChose')
+      },
       async init (id, display) {
         this.fileList = []
         this.stepList = []
@@ -333,7 +337,7 @@
                   type: 'success',
                   duration: 1500,
                   onClose: () => {
-                    this.visible = false
+                    this.onChose()
                     this.$emit('refreshDataList')
                   }
                 })

+ 10 - 4
src/views/modules/order/order-detail.vue

@@ -1,9 +1,11 @@
 <template>
-  <el-dialog
+  <!-- <el-dialog
     title="查看"
     width="70%"
     :close-on-click-modal="false"
-    :visible.sync="visible">
+    :visible.sync="visible"> -->
+  <div>
+    <div class="my-title">查看</div>
     <div style="margin-left: 20px;margin-right: 20px">
       <!-- 工作流 -->
       <div v-show="dataForm.workFlowBusinessExt">
@@ -110,9 +112,10 @@
       </e-desc>
     </div>
     <span slot="footer" class="dialog-footer">
-      <el-button @click="visible = false">返回</el-button>
+      <el-button @click="onChose">返回</el-button>
     </span>
-  </el-dialog>
+  </div>
+  <!-- </el-dialog> -->
 </template>
 
 <script>
@@ -140,6 +143,9 @@
       }
     },
     methods: {
+      onChose () {
+        this.$emit('onChose')
+      },
       async init (id, businessType) {
         this.visible = true
         this.isFlow = !!(businessType && businessType !== '')

+ 139 - 132
src/views/modules/order/order.vue

@@ -1,139 +1,141 @@
 <!-- 订单 -->
 <template>
   <div class="order">
-    <el-form :inline="true" :model="dataForm" @keyup.enter.native="queryData()">
-      <el-form-item label="客户名称">
-        <cus-component v-model="dataForm.customerId" :cus-id="dataForm.customerId"></cus-component>
-      </el-form-item>
-      <el-form-item label="客户订单编号">
-        <el-input v-model="dataForm.cusOrderCode" placeholder="客户订单编号" clearable></el-input>
-      </el-form-item>
-      <el-form-item label="创建日期">
-        <el-date-picker
-          v-model="dataForm.createTime"
-          value-format="yyyy-MM-dd"
-          type="date">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item>
-        <el-button @click="queryData()">查询</el-button>
-        <el-button v-if="isAuth('order:ctl:save')" @click="addOrUpdateHandle(0, false)" type="primary">创建订单</el-button>
-      </el-form-item>
-    </el-form>
-    <el-table
-      :data="dataList"
-      border
-      v-loading="dataListLoading"
-      @selection-change="selectionChangeHandle"
-      style="width: 100%;">
-      <el-table-column
-        label="序号"
-        type="index"
-        width="50"
-        align="center">
-      </el-table-column>
-      <el-table-column
-        prop="orderCode"
-        header-align="center"
-        align="center"
-        min-width="180"
-        :show-tooltip-when-overflow="true"
-        label="订单编码">
-      </el-table-column>
-      <el-table-column
-        prop="customerName"
-        header-align="center"
-        align="center"
-        min-width="180"
-        :show-overflow-tooltip="true"
-        label="客户名称">
-      </el-table-column>
-      <el-table-column
-        prop="cusOrderCode"
-        header-align="center"
-        align="center"
-        min-width="120"
-        :show-tooltip-when-overflow="true"
-        label="客户订单编号">
-      </el-table-column>
-      <el-table-column
-        prop="createTime"
-        header-align="center"
-        align="center"
-        min-width="160"
-        label="下单时间">
-      </el-table-column>
-      <el-table-column
-        prop="contactDate"
-        header-align="center"
-        align="center"
-        min-width="160"
-        label="合同交期">
-      </el-table-column>
-      <el-table-column
-        prop="-"
-        header-align="center"
-        align="center"
-        :formatter="formatState"
-        label="审批状态">
-      </el-table-column>
-      <el-table-column
-        prop="-"
-        header-align="center"
-        align="center"
-        :formatter="formatOrderState"
-        label="订单状态">
-      </el-table-column>
-      <el-table-column
-        prop="approver"
-        header-align="center"
-        align="center"
-        :min-width="140"
-        :show-overflow-tooltip="true"
-        label="当前审批人">
-      </el-table-column>
-      <el-table-column
-        prop="completeDate"
-        header-align="center"
-        align="center"
-        min-width="160"
-        label="订单完成时间">
-      </el-table-column>
-      <el-table-column
-        prop="notes"
-        header-align="center"
-        align="center"
-        min-width="180"
-        :show-overflow-tooltip="true"
-        label="备注">
-      </el-table-column>
-      <el-table-column
-        fixed="right"
-        header-align="center"
-        align="center"
-        width="180"
-        label="操作">
-        <template slot-scope="scope">
-          <el-button v-if="isAuth('order:ctl:info')" type="text" size="small" @click="detailHandle(scope.row.orderId)">查看</el-button>
-          <el-button v-if="isAuth('order:ctl:editor') && Number(scope.row.orderState) < 2" type="text" size="small" @click="addOrUpdateHandle(scope.row.orderId,false)">编辑</el-button>
-          <el-button v-if="isAuth('order:ctl:deliver') && Number(scope.row.orderState) === 3" type="text" size="small" @click="deliverHandle(scope.row.orderId)">发货</el-button>
-          <el-button v-if="isAuth('order:ctl:arrived') && Number(scope.row.orderState) === 4 " type="text" size="small" @click="arrivedHandle(scope.row)">送达</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <el-pagination
-      @size-change="sizeChangeHandle"
-      @current-change="currentChangeHandle"
-      :current-page="pageIndex"
-      :page-sizes="[10, 20, 50, 100]"
-      :page-size="pageSize"
-      :total="totalPage"
-      layout="total, sizes, prev, pager, next, jumper">
-    </el-pagination>
+    <template v-if="!addOrUpdateVisible && !detailVisible && !arrivedVisible">
+      <el-form :inline="true" :model="dataForm" @keyup.enter.native="queryData()">
+        <el-form-item label="客户名称">
+          <cus-component v-model="dataForm.customerId" :cus-id="dataForm.customerId"></cus-component>
+        </el-form-item>
+        <el-form-item label="客户订单编号">
+          <el-input v-model="dataForm.cusOrderCode" placeholder="客户订单编号" clearable></el-input>
+        </el-form-item>
+        <el-form-item label="创建日期">
+          <el-date-picker
+            v-model="dataForm.createTime"
+            value-format="yyyy-MM-dd"
+            type="date">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item>
+          <el-button @click="queryData()">查询</el-button>
+          <el-button v-if="isAuth('order:ctl:save')" @click="addOrUpdateHandle(0, false)" type="primary">创建订单</el-button>
+        </el-form-item>
+      </el-form>
+      <el-table
+        :data="dataList"
+        border
+        v-loading="dataListLoading"
+        @selection-change="selectionChangeHandle"
+        style="width: 100%;">
+        <el-table-column
+          label="序号"
+          type="index"
+          width="50"
+          align="center">
+        </el-table-column>
+        <el-table-column
+          prop="orderCode"
+          header-align="center"
+          align="center"
+          min-width="180"
+          :show-tooltip-when-overflow="true"
+          label="订单编码">
+        </el-table-column>
+        <el-table-column
+          prop="customerName"
+          header-align="center"
+          align="center"
+          min-width="180"
+          :show-overflow-tooltip="true"
+          label="客户名称">
+        </el-table-column>
+        <el-table-column
+          prop="cusOrderCode"
+          header-align="center"
+          align="center"
+          min-width="120"
+          :show-tooltip-when-overflow="true"
+          label="客户订单编号">
+        </el-table-column>
+        <el-table-column
+          prop="createTime"
+          header-align="center"
+          align="center"
+          min-width="160"
+          label="下单时间">
+        </el-table-column>
+        <el-table-column
+          prop="contactDate"
+          header-align="center"
+          align="center"
+          min-width="160"
+          label="合同交期">
+        </el-table-column>
+        <el-table-column
+          prop="-"
+          header-align="center"
+          align="center"
+          :formatter="formatState"
+          label="审批状态">
+        </el-table-column>
+        <el-table-column
+          prop="-"
+          header-align="center"
+          align="center"
+          :formatter="formatOrderState"
+          label="订单状态">
+        </el-table-column>
+        <el-table-column
+          prop="approver"
+          header-align="center"
+          align="center"
+          :min-width="140"
+          :show-overflow-tooltip="true"
+          label="当前审批人">
+        </el-table-column>
+        <el-table-column
+          prop="completeDate"
+          header-align="center"
+          align="center"
+          min-width="160"
+          label="订单完成时间">
+        </el-table-column>
+        <el-table-column
+          prop="notes"
+          header-align="center"
+          align="center"
+          min-width="180"
+          :show-overflow-tooltip="true"
+          label="备注">
+        </el-table-column>
+        <el-table-column
+          fixed="right"
+          header-align="center"
+          align="center"
+          width="180"
+          label="操作">
+          <template slot-scope="scope">
+            <el-button v-if="isAuth('order:ctl:info')" type="text" size="small" @click="detailHandle(scope.row.orderId)">查看</el-button>
+            <el-button v-if="isAuth('order:ctl:editor') && Number(scope.row.orderState) < 2" type="text" size="small" @click="addOrUpdateHandle(scope.row.orderId,false)">编辑</el-button>
+            <el-button v-if="isAuth('order:ctl:deliver') && Number(scope.row.orderState) === 3" type="text" size="small" @click="deliverHandle(scope.row.orderId)">发货</el-button>
+            <el-button v-if="isAuth('order:ctl:arrived') && Number(scope.row.orderState) === 4 " type="text" size="small" @click="arrivedHandle(scope.row)">送达</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination
+        @size-change="sizeChangeHandle"
+        @current-change="currentChangeHandle"
+        :current-page="pageIndex"
+        :page-sizes="[10, 20, 50, 100]"
+        :page-size="pageSize"
+        :total="totalPage"
+        layout="total, sizes, prev, pager, next, jumper">
+      </el-pagination>
+    </template>
     <!-- 弹窗, 新增 / 修改 -->
-    <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
-    <detail v-if="detailVisible" ref="detail"/>
-    <dispatch-arrived v-if="arrivedVisible" ref="arrived" @refreshDataList="getDataList"></dispatch-arrived>
+    <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList" @onChose="onChose"></add-or-update>
+    <detail v-if="detailVisible" ref="detail" @onChose="onChose"/>
+    <dispatch-arrived v-if="arrivedVisible" ref="arrived" @refreshDataList="getDataList" @onChose="onChose"></dispatch-arrived>
   </div>
 </template>
 
@@ -189,6 +191,11 @@
       }
     },
     methods: {
+      onChose () {
+        this.addOrUpdateVisible = false
+        this.detailVisible = false
+        this.arrivedVisible = false
+      },
       // 查询
       queryData () {
         this.pageIndex = 1

+ 9 - 5
src/views/modules/sale/purchase-add-or-update.vue

@@ -1,10 +1,11 @@
 <template>
   <div>
-    <el-dialog
+    <!-- <el-dialog
       :title="!id ? '新增': display ? '详情' : '修改'"
       width="70%"
       :close-on-click-modal="false"
-      :visible.sync="visible">
+      :visible.sync="visible"> -->
+      <div class="my-title">{{ !id ? '新增': display ? '详情' : '修改' }}</div>
       <!-- 工作流 -->
       <div v-show="display && dataForm.workFlowBusinessExt">
         <el-steps :active="dataForm.workFlowBusinessExt&&dataForm.workFlowBusinessExt.workFlowProcessStepList?dataForm.workFlowBusinessExt.workFlowProcessStepList.length + 2:0" align-center style="margin-bottom: 20px">
@@ -160,10 +161,10 @@
         </el-row>
       </el-form>
       <span slot="footer" class="dialog-footer">
-      <el-button @click="visible = false">取消</el-button>
+      <el-button @click="onChose">取消</el-button>
       <el-button v-if="!display" type="primary" @click="dataFormSubmit()">确定</el-button>
     </span>
-    </el-dialog>
+    <!-- </el-dialog> -->
     <!-- 新增物品 -->
     <Add v-show="addMaterialVisible" ref="comAddMaterial" @addItem="addMaterialCallback"/>
   </div>
@@ -201,6 +202,9 @@
       }
     },
     methods: {
+      onChose () {
+        this.$emit('onChose')
+      },
       // 获取采购类别字典
       getTypeList () {
         getDictList({type: 'purchase_type'}).then(({data}) => {
@@ -259,7 +263,7 @@
                   type: 'success',
                   duration: 1500,
                   onClose: () => {
-                    this.visible = false
+                    this.onChose()
                     this.$emit('refreshDataList')
                   }
                 })

+ 10 - 4
src/views/modules/sale/purchase-detail.vue

@@ -1,9 +1,11 @@
 <template>
-  <el-dialog
+  <!-- <el-dialog
     title="查看"
     width="70%"
     :close-on-click-modal="false"
-    :visible.sync="visible">
+    :visible.sync="visible"> -->
+  <div>
+    <div class="my-title">查看</div>
     <div style="margin-left: 20px;margin-right: 20px">
       <!-- 工作流 -->
       <div v-show="dataForm.workFlowBusinessExt">
@@ -122,9 +124,10 @@
       </e-desc>
     </div>
     <span slot="footer" class="dialog-footer">
-      <el-button @click="visible = false">返回</el-button>
+      <el-button @click="onChose">返回</el-button>
     </span>
-  </el-dialog>
+  </div>
+  <!-- </el-dialog> -->
 </template>
 
 <script>
@@ -163,6 +166,9 @@
       }
     },
     methods: {
+      onChose () {
+        this.$emit('onChose')
+      },
       async init (id, businessType) {
         this.visible = true
         this.isFlow = !!(businessType && businessType !== '')

+ 145 - 139
src/views/modules/sale/purchase.vue

@@ -1,146 +1,148 @@
 <!-- 产品管理 -->
 <template>
   <div class="purchase">
-    <el-form :inline="true" :model="dataForm" @keyup.enter.native="search()">
-      <el-form-item label="采购编码">
-        <el-input v-model="dataForm.purchaseCode" placeholder="采购编码" clearable/>
-      </el-form-item>
-      <el-form-item label="说明">
-        <el-input v-model="dataForm.notes" placeholder="说明" clearable/>
-      </el-form-item>
-      <el-form-item label="类别">
-        <el-select
-          v-model="dataForm.purchaseType"
-          remote
-          placeholder="请选择">
-          <el-option
-            v-for="item in optionsType"
-            :key="item.code"
-            :label="item.value"
-            :value="item.code">
-          </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="申请日期">
-        <el-date-picker
-          v-model="dataForm.applyDate"
-          value-format="yyyy-MM-dd"
-          type="date">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item label="状态">
-        <el-select
-          v-model="dataForm.purchaseState"
-          remote
-          placeholder="请选择">
-          <el-option
-            v-for="item in optionsState"
-            :key="item.code"
-            :label="item.value"
-            :value="item.code">
-          </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item>
-        <el-button @click="search()">查询</el-button>
-        <el-button v-if="isAuth('sale:purchase:save')" type="primary" @click="addOrUpdateHandle(0, false)">新建采购申请</el-button>
-      </el-form-item>
-    </el-form>
-    <el-table
-      :data="dataList"
-      border
-      v-loading="dataListLoading"
-      style="width: 100%;">
-      <el-table-column
-        label="序号"
-        type="index"
-        width="50"
-        align="center">
-      </el-table-column>
-      <el-table-column
-        prop="purchaseCode"
-        header-align="center"
-        align="center"
-        min-width="180"
-        :show-tooltip-when-overflow="true"
-        label="采购编码">
-      </el-table-column>
-      <el-table-column
-        prop="materialName"
-        header-align="center"
-        align="center"
-        width="160"
-        :show-tooltip-when-overflow="true"
-        label="物品名称">
-      </el-table-column>
-      <el-table-column
-        prop="purchaseType"
-        header-align="center"
-        align="center"
-        :formatter="formatType"
-        label="采购类别">
-      </el-table-column>
-      <el-table-column
-        prop="createTime"
-        header-align="center"
-        align="center"
-        min-width="160"
-        label="申请时间">
-      </el-table-column>
-      <el-table-column
-        prop="applierName"
-        header-align="center"
-        align="center"
-        min-width="100"
-        label="申请人">
-      </el-table-column>
-      <el-table-column
-        prop="deptName"
-        header-align="center"
-        align="center"
-        min-width="100"
-        label="申请部门">
-      </el-table-column>
-      <el-table-column
-        prop="purchaseState"
-        header-align="center"
-        align="center"
-        :formatter="formatState"
-        label="当前状态">
-      </el-table-column>
-      <el-table-column
-              prop="notes"
-              header-align="center"
-              align="center"
-              min-width="180"
-              :show-overflow-tooltip="true"
-              label="备注说明">
-      </el-table-column>
-      <el-table-column
-        fixed="right"
-        header-align="center"
-        align="center"
-        width="150"
-        label="操作">
-        <template slot-scope="scope">
-          <el-button v-if="isAuth('sale:purchase:info')" type="text" size="small" @click="detailHandle(scope.row.purchaseId)">查看</el-button>
-          <el-button v-if="isAuth('sale:purchase:update') && Number(scope.row.purchaseState) < 2" type="text" size="small" @click="addOrUpdateHandle(scope.row.purchaseId, false)">编辑</el-button>
-          <el-button v-if="isAuth('sale:purchase:revoke') && Number(scope.row.purchaseState) < 2" style="color: red" type="text" size="small" @click="revokeHandle(scope.row.purchaseId)">撤回</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <el-pagination
-      @size-change="sizeChangeHandle"
-      @current-change="currentChangeHandle"
-      :current-page="pageIndex"
-      :page-sizes="[10, 20, 50, 100]"
-      :page-size="pageSize"
-      :total="totalPage"
-      layout="total, sizes, prev, pager, next, jumper">
-    </el-pagination>
+    <template v-if="!addOrUpdateVisible && !detailVisible">
+      <el-form :inline="true" :model="dataForm" @keyup.enter.native="search()">
+        <el-form-item label="采购编码">
+          <el-input v-model="dataForm.purchaseCode" placeholder="采购编码" clearable/>
+        </el-form-item>
+        <el-form-item label="说明">
+          <el-input v-model="dataForm.notes" placeholder="说明" clearable/>
+        </el-form-item>
+        <el-form-item label="类别">
+          <el-select
+            v-model="dataForm.purchaseType"
+            remote
+            placeholder="请选择">
+            <el-option
+              v-for="item in optionsType"
+              :key="item.code"
+              :label="item.value"
+              :value="item.code">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="申请日期">
+          <el-date-picker
+            v-model="dataForm.applyDate"
+            value-format="yyyy-MM-dd"
+            type="date">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="状态">
+          <el-select
+            v-model="dataForm.purchaseState"
+            remote
+            placeholder="请选择">
+            <el-option
+              v-for="item in optionsState"
+              :key="item.code"
+              :label="item.value"
+              :value="item.code">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-button @click="search()">查询</el-button>
+          <el-button v-if="isAuth('sale:purchase:save')" type="primary" @click="addOrUpdateHandle(0, false)">新建采购申请</el-button>
+        </el-form-item>
+      </el-form>
+      <el-table
+        :data="dataList"
+        border
+        v-loading="dataListLoading"
+        style="width: 100%;">
+        <el-table-column
+          label="序号"
+          type="index"
+          width="50"
+          align="center">
+        </el-table-column>
+        <el-table-column
+          prop="purchaseCode"
+          header-align="center"
+          align="center"
+          min-width="180"
+          :show-tooltip-when-overflow="true"
+          label="采购编码">
+        </el-table-column>
+        <el-table-column
+          prop="materialName"
+          header-align="center"
+          align="center"
+          width="160"
+          :show-tooltip-when-overflow="true"
+          label="物品名称">
+        </el-table-column>
+        <el-table-column
+          prop="purchaseType"
+          header-align="center"
+          align="center"
+          :formatter="formatType"
+          label="采购类别">
+        </el-table-column>
+        <el-table-column
+          prop="createTime"
+          header-align="center"
+          align="center"
+          min-width="160"
+          label="申请时间">
+        </el-table-column>
+        <el-table-column
+          prop="applierName"
+          header-align="center"
+          align="center"
+          min-width="100"
+          label="申请人">
+        </el-table-column>
+        <el-table-column
+          prop="deptName"
+          header-align="center"
+          align="center"
+          min-width="100"
+          label="申请部门">
+        </el-table-column>
+        <el-table-column
+          prop="purchaseState"
+          header-align="center"
+          align="center"
+          :formatter="formatState"
+          label="当前状态">
+        </el-table-column>
+        <el-table-column
+                prop="notes"
+                header-align="center"
+                align="center"
+                min-width="180"
+                :show-overflow-tooltip="true"
+                label="备注说明">
+        </el-table-column>
+        <el-table-column
+          fixed="right"
+          header-align="center"
+          align="center"
+          width="150"
+          label="操作">
+          <template slot-scope="scope">
+            <el-button v-if="isAuth('sale:purchase:info')" type="text" size="small" @click="detailHandle(scope.row.purchaseId)">查看</el-button>
+            <el-button v-if="isAuth('sale:purchase:update') && Number(scope.row.purchaseState) < 2" type="text" size="small" @click="addOrUpdateHandle(scope.row.purchaseId, false)">编辑</el-button>
+            <el-button v-if="isAuth('sale:purchase:revoke') && Number(scope.row.purchaseState) < 2" style="color: red" type="text" size="small" @click="revokeHandle(scope.row.purchaseId)">撤回</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination
+        @size-change="sizeChangeHandle"
+        @current-change="currentChangeHandle"
+        :current-page="pageIndex"
+        :page-sizes="[10, 20, 50, 100]"
+        :page-size="pageSize"
+        :total="totalPage"
+        layout="total, sizes, prev, pager, next, jumper">
+      </el-pagination>
+    </template>
     <!-- 弹窗, 新增 / 修改 -->
-    <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
-    <detail v-if="detailVisible" ref="detail"/>
+    <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList" @onChose="onChose"></add-or-update>
+    <detail v-if="detailVisible" ref="detail" @onChose="onChose"/>
   </div>
 </template>
 
@@ -176,6 +178,10 @@
       this.getDataList()
     },
     methods: {
+      onChose () {
+        this.addOrUpdateVisible = false
+        this.detailVisible = false
+      },
       // 获取采购类别字典
       getTypeList () {
         getDictList({type: 'purchase_type'}).then(({data}) => {

+ 10 - 4
src/views/modules/works/handover-records-details.vue

@@ -1,9 +1,11 @@
 <template>
-  <el-dialog
+  <!-- <el-dialog
     title="查看"
     width="70%"
     :close-on-click-modal="false"
-    :visible.sync="visible">
+    :visible.sync="visible"> -->
+  <div>
+    <div class="my-title">查看</div>
     <div style="margin-left: 20px;margin-right: 20px">
       <e-desc title="基本信息" column="3">
         <e-desc-item label="产品名称">{{dataForm.productName}}</e-desc-item>
@@ -20,9 +22,10 @@
       </e-desc>
     </div>
     <span slot="footer" class="dialog-footer">
-      <el-button @click="visible = false">返回</el-button>
+      <el-button @click="onChose">返回</el-button>
     </span>
-  </el-dialog>
+  </div>
+  <!-- </el-dialog> -->
 </template>
 
 <script>
@@ -42,6 +45,9 @@
       }
     },
     methods: {
+      onChose () {
+        this.$emit('onChose')
+      },
       async init (id) {
         this.visible = true
         this.id = id || 0

+ 112 - 107
src/views/modules/works/handover-records.vue

@@ -1,113 +1,115 @@
 <!-- 移交记录 -->
 <template>
     <div>
-      <el-form :inline="true" :model="dataForm" @keyup.enter.native="queryPage()">
-        <el-form-item label="名称">
-          <el-input v-model="dataForm.name" placeholder="名称" clearable/>
-        </el-form-item>
-        <el-form-item label="产品编号">
-          <el-input v-model="dataForm.code" placeholder="产品编号" clearable/>
-        </el-form-item>
-        <el-form-item>
-          <el-button @click="queryPage()">查询</el-button>
-        </el-form-item>
-      </el-form>
-      <el-table
-        :data="dataList"
-        border
-        v-loading="dataListLoading"
-        style="width: 100%;">
-        <el-table-column
-          label="序号"
-          type="index"
-          width="50"
-          align="center">
-        </el-table-column>
-        <el-table-column
-          prop="productName"
-          header-align="center"
-          align="center"
-          width="160"
-          :show-overflow-tooltip="true"
-          label="产品名称">
-        </el-table-column>
-        <el-table-column
-          prop="prodCode"
-          header-align="center"
-          align="center"
-          width="160"
-          :show-overflow-tooltip="true"
-          label="产品编号">
-        </el-table-column>
-        <el-table-column
-          prop="techName"
-          header-align="center"
-          align="center"
-          width="160"
-          :show-overflow-tooltip="true"
-          label="工艺名称">
-        </el-table-column>
-        <el-table-column
-          prop="nodeName"
-          header-align="center"
-          align="center"
-          width="160"
-          :show-overflow-tooltip="true"
-          label="工序名称">
-        </el-table-column>
-        <el-table-column
-          prop="transferUserName"
-          header-align="center"
-          align="center"
-          width="120"
-          :show-overflow-tooltip="true"
-          label="移交接收人">
-        </el-table-column>
-        <el-table-column
-          prop="creatorName"
-          header-align="center"
-          align="center"
-          min-width="120"
-          :show-overflow-tooltip="true"
-          label="移交发起人">
-        </el-table-column>
-        <el-table-column
-          prop="transferExplain"
-          header-align="center"
-          align="center"
-          min-width="160"
-          :show-overflow-tooltip="true"
-          label="移交说明">
-        </el-table-column>
-        <el-table-column
-          prop="createTime"
-          header-align="center"
-          align="center"
-          min-width="160"
-          label="移交时间">
-        </el-table-column>
-        <el-table-column
-          v-if="isAuth('prod:transfer:info')"
-          fixed="right"
-          header-align="center"
-          align="center"
-          width="140"
-          label="操作">
-          <template slot-scope="scope">
-            <el-button type="text" size="small" @click="detailHandle(scope.row.recordId)">查看</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-      <el-pagination
-        @size-change="sizeChangeHandle"
-        @current-change="currentChangeHandle"
-        :current-page="pageIndex"
-        :page-sizes="[10, 20, 50, 100]"
-        :page-size="pageSize"
-        :total="totalPage"
-        layout="total, sizes, prev, pager, next, jumper">
-      </el-pagination>
-      <detail v-if="detailVisible" ref="detail"/>
+      <template v-if="!detailVisible">
+        <el-form :inline="true" :model="dataForm" @keyup.enter.native="queryPage()">
+          <el-form-item label="名称">
+            <el-input v-model="dataForm.name" placeholder="名称" clearable/>
+          </el-form-item>
+          <el-form-item label="产品编号">
+            <el-input v-model="dataForm.code" placeholder="产品编号" clearable/>
+          </el-form-item>
+          <el-form-item>
+            <el-button @click="queryPage()">查询</el-button>
+          </el-form-item>
+        </el-form>
+        <el-table
+          :data="dataList"
+          border
+          v-loading="dataListLoading"
+          style="width: 100%;">
+          <el-table-column
+            label="序号"
+            type="index"
+            width="50"
+            align="center">
+          </el-table-column>
+          <el-table-column
+            prop="productName"
+            header-align="center"
+            align="center"
+            width="160"
+            :show-overflow-tooltip="true"
+            label="产品名称">
+          </el-table-column>
+          <el-table-column
+            prop="prodCode"
+            header-align="center"
+            align="center"
+            width="160"
+            :show-overflow-tooltip="true"
+            label="产品编号">
+          </el-table-column>
+          <el-table-column
+            prop="techName"
+            header-align="center"
+            align="center"
+            width="160"
+            :show-overflow-tooltip="true"
+            label="工艺名称">
+          </el-table-column>
+          <el-table-column
+            prop="nodeName"
+            header-align="center"
+            align="center"
+            width="160"
+            :show-overflow-tooltip="true"
+            label="工序名称">
+          </el-table-column>
+          <el-table-column
+            prop="transferUserName"
+            header-align="center"
+            align="center"
+            width="120"
+            :show-overflow-tooltip="true"
+            label="移交接收人">
+          </el-table-column>
+          <el-table-column
+            prop="creatorName"
+            header-align="center"
+            align="center"
+            min-width="120"
+            :show-overflow-tooltip="true"
+            label="移交发起人">
+          </el-table-column>
+          <el-table-column
+            prop="transferExplain"
+            header-align="center"
+            align="center"
+            min-width="160"
+            :show-overflow-tooltip="true"
+            label="移交说明">
+          </el-table-column>
+          <el-table-column
+            prop="createTime"
+            header-align="center"
+            align="center"
+            min-width="160"
+            label="移交时间">
+          </el-table-column>
+          <el-table-column
+            v-if="isAuth('prod:transfer:info')"
+            fixed="right"
+            header-align="center"
+            align="center"
+            width="140"
+            label="操作">
+            <template slot-scope="scope">
+              <el-button type="text" size="small" @click="detailHandle(scope.row.recordId)">查看</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <el-pagination
+          @size-change="sizeChangeHandle"
+          @current-change="currentChangeHandle"
+          :current-page="pageIndex"
+          :page-sizes="[10, 20, 50, 100]"
+          :page-size="pageSize"
+          :total="totalPage"
+          layout="total, sizes, prev, pager, next, jumper">
+        </el-pagination>
+      </template>
+      <detail v-if="detailVisible" ref="detail" @onChose="onChose"/>
     </div>
 </template>
 
@@ -133,6 +135,9 @@
       this.getDataList()
     },
     methods: {
+      onChose () {
+        this.detailVisible = false
+      },
       // 查询
       queryPage () {
         this.pageIndex = 1