瀏覽代碼

7.24代码

duanqichao 2 年之前
父節點
當前提交
78fd71b782

二進制
dist.zip


+ 3 - 2
public/index.html

xqd
@@ -4,8 +4,9 @@
     <meta charset="utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
-    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
-    <title><%= webpackConfig.name %></title>
+    <!-- <link rel="icon" href="<%= BASE_URL %>favicon.ico">
+    <title><%= webpackConfig.name %></title> -->
+    <title>信荣茂</title>
   </head>
   <body>
     <noscript>

+ 7 - 0
src/api/contracts.js

xqd
@@ -7,3 +7,10 @@ export function contractsPageApi(data) {
     data
   })
 }
+export function contractsManageApi(data) {
+  return request({
+    url: '/api/Contract/manage',
+    method: 'post',
+    data
+  })
+}

+ 127 - 0
src/components/TableWrapper/TableWrapper.vue

xqd
@@ -0,0 +1,127 @@
+<template>
+  <div v-loading="loading">
+    <slot />
+    <!-- <el-pagination
+      v-if="pagination.total > 0"
+      style="text-align:right;margin-top:15px"
+      v-bind="paginationBind"
+      :current-page="pagination.pageIndex"
+      layout="total, sizes, prev, pager, next, jumper"
+      :total="pagination.total"
+      @size-change="onchange"
+      @current-change="showSizeChange"
+    /> -->
+    <div class="pagesip">
+      <el-button
+        type="primary"
+        size="small"
+        style="background-color: #d8ab5a; border-color: #d8ab5a; margin: 0 20px"
+        @click="jumpFirstPage"
+      >首页
+      </el-button>
+      <el-pagination
+        ref="pagination"
+        background
+        layout="prev, pager, next"
+        :total="pagination.total"
+        :current-page="pagination.pageIndex"
+        v-bind="paginationBind"
+        prev-text="上一页"
+        next-text="下一页"
+        :hide-on-single-page="false"
+        @size-change="onchange"
+        @current-change="showSizeChange"
+      />
+      <el-button
+        type="primary"
+        size="small"
+        style="background-color: #d8ab5a; border-color: #d8ab5a; margin: 0 20px"
+        @click="jumpLastPage"
+      >尾页
+      </el-button>
+    </div>
+  </div>
+</template>
+
+<script>
+
+export default {
+  name: 'VxetableWrapper',
+  props: {
+    loading: {
+      type: Boolean,
+      default: false
+    },
+    pagination: {
+      type: Object,
+      default: () => {}
+    }
+  },
+  data() {
+    return {
+      paginationAttr: {
+        pageIndex: 0,
+        total: 0,
+        pageSize: 10,
+        pageSizes: ['10', '30', '50', '100']
+      },
+      pageIndex: 1,
+      pageSize: 10
+    }
+  },
+  computed: {
+    paginationBind() {
+      return {
+        ...this.paginationAttr,
+        ...this.pagination
+      }
+    }
+  },
+  methods: {
+    jumpFirstPage() {
+      this.showSizeChange(1)
+    },
+    jumpLastPage() {
+      const total = this.pagination.total
+      const pageSize = this.pagination.pageSize
+      const cpage = Math.ceil(total / pageSize)
+      this.showSizeChange(cpage)
+    },
+    showSizeChange(pageIndex) {
+      this.$emit('change', {
+        pageIndex,
+        pageSize: this.pageSize
+      })
+    },
+    onchange(pageSize) {
+      this.pageSize = pageSize
+      this.$emit('change', {
+        current: 1,
+        pageSize
+      })
+    }
+  }
+}
+</script>
+<style lang="scss">
+
+	.pagesip {
+		width: 100%;
+		margin: 20px auto;
+		padding-right: 50px;
+		display: flex;
+		// align-items: center;
+		justify-content: flex-end;
+	}
+
+	.el-pagination.is-background .el-pager li:not(.disabled).active {
+		background-color: #d8ab5a;
+	}
+
+	.el-col {
+		margin-bottom: 20px;
+	}
+	.btn{
+		padding: 20px;
+	}
+</style>

+ 3 - 2
src/main.js

xqd xqd
@@ -5,7 +5,7 @@ import request from '@/utils/request'
 import ElementUI from 'element-ui'
 import 'element-ui/lib/theme-chalk/index.css'
 // import locale from 'element-ui/lib/locale/lang/en' // lang i18n
-Vue.prototype.$request=request
+Vue.prototype.$request = request
 import '@/styles/index.scss' // global css
 import '@/styles/flex.scss' // global css
 import App from './App'
@@ -15,7 +15,8 @@ import locale from 'element-ui/lib/locale/lang/zh-CN'
 
 import '@/icons' // icon
 import '@/permission' // permission control
-
+import TableWrapper from '@/components/TableWrapper/TableWrapper.vue'
+Vue.component('TableWrapper', TableWrapper)
 /**
  * If you don't want to use mock-server
  * you want to use MockJs for mock api

+ 7 - 0
src/router/index.js

xqd
@@ -66,6 +66,13 @@ export const constantRoutes = [
     name: 'Example',
     meta: { title: '合同列表', icon: 'el-icon-s-order' },
     children: [
+      {
+        path: 'list',
+        name: 'contracts-list',
+        component: () => import('@/views/contracts/list'),
+        meta: { title: '合同列表', icon: 'el-icon-s-order' },
+        hidden: true
+      },
       {
         path: 'contracts',
         name: 'contracts',

+ 1 - 1
src/settings.js

xqd
@@ -1,6 +1,6 @@
 module.exports = {
 
-  title: 'Vue Admin Template',
+  title: '信荣茂',
 
   /**
    * @type {boolean} true | false

+ 384 - 371
src/views/contracts/addcontract.vue

xqd xqd xqd
@@ -1,152 +1,162 @@
 <template>
-	<div class="app-container">
-		<el-card class="box-card" style="padding: 20px 10px;margin-bottom: 20px;">
-			<el-row>
-				<div class="contract">
-					<div>
-						<p>合同名称</p>
-						<el-input v-model='list.contractName' placeholder="请输入合同名称" style="width: 500px;"></el-input>
-					</div>
-					<div>
-						<p>合同编号</p>
-						<el-input v-model='list.contractNumber' placeholder="请输入合同编号" style="width: 500px;"></el-input>
-					</div>
-				</div>
+  <div class="app-container">
+    <el-card class="box-card" style="padding: 20px 10px;margin-bottom: 20px;">
+      <el-row>
+        <div class="contract">
+          <div>
+            <p>合同名称</p>
+            <el-input v-model="list.contractName" placeholder="请输入合同名称" style="width: 500px;" />
+          </div>
+          <div>
+            <p>合同编号</p>
+            <el-input v-model="list.contractNumber" placeholder="请输入合同编号" style="width: 500px;" />
+          </div>
+        </div>
 
-				<div class="titlesa">
-					<span>合同附件</span>
-					<span style="color: #D05C39;">*支持上传pdf、jpg/jpeg、png格式</span>
-				</div>
-				<div>
-					<el-upload action="https://ht.9026.com/api/File" list-type="picture-card" :auto-upload="false">
-						<i slot="default" class="el-icon-plus"></i>
-						<div slot="file" slot-scope="{file}">
-							<img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
-							<span class="el-upload-list__item-actions">
-								<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
-									<i class="el-icon-zoom-in"></i>
-								</span>
-								<span v-if="!disabled" class="el-upload-list__item-delete"
-									@click="handleDownload(file)">
-									<i class="el-icon-download"></i>
-								</span>
-								<span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)">
-									<i class="el-icon-delete"></i>
-								</span>
-							</span>
-						</div>
-					</el-upload>
-					<el-dialog :visible.sync="dialogVisible">
-						<img width="100%" :src="dialogImageUrl" alt="">
-					</el-dialog>
-				</div>
-				<div class="titlesa">
-					<span>发票附件</span>
-					<span style="color: #D05C39;">*支持上传pdf、jpg/jpeg、png格式</span>
-				</div>
-				<div>
-					<el-upload action="https://ht.9026.com/api/File" list-type="picture-card" :auto-upload="false">
-						<i slot="default" class="el-icon-plus"></i>
-						<div slot="file" slot-scope="{file}">
-							<img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
-							<span class="el-upload-list__item-actions">
-								<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
-									<i class="el-icon-zoom-in"></i>
-								</span>
-								<span v-if="!disabled" class="el-upload-list__item-delete"
-									@click="handleDownload(file)">
-									<i class="el-icon-download"></i>
-								</span>
-								<span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)">
-									<i class="el-icon-delete"></i>
-								</span>
-							</span>
-						</div>
-					</el-upload>
-					<el-dialog :visible.sync="dialogVisible">
-						<img width="100%" :src="dialogImageUrl" alt="">
-					</el-dialog>
-				</div>
-				<div class="titlesa">
-					<span>贸易合同</span>
-					<span style="color: #D05C39;">*支持上传pdf、jpg/jpeg、png格式</span>
-				</div>
-				<div>
-					<el-upload action="https://ht.9026.com/api/File" list-type="picture-card" :auto-upload="false">
-						<i slot="default" class="el-icon-plus"></i>
-						<div slot="file" slot-scope="{file}">
-							<img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
-							<span class="el-upload-list__item-actions">
-								<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
-									<i class="el-icon-zoom-in"></i>
-								</span>
-								<span v-if="!disabled" class="el-upload-list__item-delete"
-									@click="handleDownload(file)">
-									<i class="el-icon-download"></i>
-								</span>
-								<span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)">
-									<i class="el-icon-delete"></i>
-								</span>
-							</span>
-						</div>
-					</el-upload>
-					<el-dialog :visible.sync="dialogVisible">
-						<img width="100%" :src="dialogImageUrl" alt="">
-					</el-dialog>
-				</div>
-			</el-row>
-		</el-card>
+        <div class="titlesa">
+          <span>合同附件</span>
+          <span style="color: #D05C39;">*支持上传pdf、jpg/jpeg、png格式</span>
+        </div>
+        <div>
+          <el-upload action="https://ht.9026.com/api/File" list-type="picture-card" :auto-upload="false">
+            <i slot="default" class="el-icon-plus" />
+            <div slot="file" slot-scope="{file}">
+              <img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
+              <span class="el-upload-list__item-actions">
+                <span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
+                  <i class="el-icon-zoom-in" />
+                </span>
+                <span
+                  v-if="!disabled"
+                  class="el-upload-list__item-delete"
+                  @click="handleDownload(file)"
+                >
+                  <i class="el-icon-download" />
+                </span>
+                <span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)">
+                  <i class="el-icon-delete" />
+                </span>
+              </span>
+            </div>
+          </el-upload>
+          <el-dialog :visible.sync="dialogVisible">
+            <img width="100%" :src="dialogImageUrl" alt="">
+          </el-dialog>
+        </div>
+        <div class="titlesa">
+          <span>发票附件</span>
+          <span style="color: #D05C39;">*支持上传pdf、jpg/jpeg、png格式</span>
+        </div>
+        <div>
+          <el-upload action="https://ht.9026.com/api/File" list-type="picture-card" :auto-upload="false">
+            <i slot="default" class="el-icon-plus" />
+            <div slot="file" slot-scope="{file}">
+              <img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
+              <span class="el-upload-list__item-actions">
+                <span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
+                  <i class="el-icon-zoom-in" />
+                </span>
+                <span
+                  v-if="!disabled"
+                  class="el-upload-list__item-delete"
+                  @click="handleDownload(file)"
+                >
+                  <i class="el-icon-download" />
+                </span>
+                <span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)">
+                  <i class="el-icon-delete" />
+                </span>
+              </span>
+            </div>
+          </el-upload>
+          <el-dialog :visible.sync="dialogVisible">
+            <img width="100%" :src="dialogImageUrl" alt="">
+          </el-dialog>
+        </div>
+        <div class="titlesa">
+          <span>贸易合同</span>
+          <span style="color: #D05C39;">*支持上传pdf、jpg/jpeg、png格式</span>
+        </div>
+        <div>
+          <el-upload action="https://ht.9026.com/api/File" list-type="picture-card" :auto-upload="false">
+            <i slot="default" class="el-icon-plus" />
+            <div slot="file" slot-scope="{file}">
+              <img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
+              <span class="el-upload-list__item-actions">
+                <span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
+                  <i class="el-icon-zoom-in" />
+                </span>
+                <span
+                  v-if="!disabled"
+                  class="el-upload-list__item-delete"
+                  @click="handleDownload(file)"
+                >
+                  <i class="el-icon-download" />
+                </span>
+                <span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)">
+                  <i class="el-icon-delete" />
+                </span>
+              </span>
+            </div>
+          </el-upload>
+          <el-dialog :visible.sync="dialogVisible">
+            <img width="100%" :src="dialogImageUrl" alt="">
+          </el-dialog>
+        </div>
+      </el-row>
+    </el-card>
 
-		<el-card class="box-card" style="padding: 20px 10px;margin: 20px 0px;" ref="draft" v-for="(item,index) in list"
-			:key="index">
-			<el-row>
-				<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" style="padding:0 15px;">
-					<el-form ref="form" :model="form" label-width="90px">
+    <el-card
+      v-for="(item,index) in list"
+      ref="draft"
+      :key="index"
+      class="box-card"
+      style="padding: 20px 10px;margin: 20px 0px;"
+    >
+      <el-row>
+        <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" style="padding:0 15px;">
+          <el-form ref="form" :model="form" label-width="90px">
 
-						<el-form-item label="汇票名称" :rules="[{  message: '姓名不能为空不能为空'}]">
-							<el-input v-model="form.name" class="ipwidth" placeholder="请填写汇票名称" />
-						</el-form-item>
-						<el-form-item label="金额" :rules="[{ message: '电话号码不能为空'}]">
-							<el-input v-model="form.money" class="ipwidth" placeholder="请填写金额" />
-						</el-form-item>
-						<el-form-item label="预计贴现日" :rules="[{  message: '身份证不能为空'}]">
-							<el-date-picker v-model="value1" type="date" placeholder="选择日期">
-							</el-date-picker>
-						</el-form-item>
-						<el-form-item label="利率" :rules="[{  message: '身份证不能为空'}]">
-							<el-input v-model="form.count" class="ipwidth" placeholder="请填写利率" />
-						</el-form-item>
-						</el-form-item>
-					</el-form>
-				</el-col>
-				<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" style="padding:0 15px;">
-					<el-form ref="form" :model="form" label-width="110px">
+            <el-form-item label="汇票名称" :rules="[{ message: '姓名不能为空不能为空'}]">
+              <el-input v-model="form.name" class="ipwidth" placeholder="请填写汇票名称" />
+            </el-form-item>
+            <el-form-item label="金额" :rules="[{ message: '电话号码不能为空'}]">
+              <el-input v-model="form.money" class="ipwidth" placeholder="请填写金额" />
+            </el-form-item>
+            <el-form-item label="预计贴现日" :rules="[{ message: '身份证不能为空'}]">
+              <el-date-picker v-model="value1" type="date" placeholder="选择日期" />
+            </el-form-item>
+            <el-form-item label="利率" :rules="[{ message: '身份证不能为空'}]">
+              <el-input v-model="form.count" class="ipwidth" placeholder="请填写利率" />
+            </el-form-item>
+            </el-form-item>
+          </el-form>
+        </el-col>
+        <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" style="padding:0 15px;">
+          <el-form ref="form" :model="form" label-width="110px">
 
-						<el-form-item label="汇票号码" :rules="[{  message: '姓名不能为空不能为空'}]">
-							<el-input v-model="form.nom" class="ipwidth" placeholder="请填写汇票号码" />
-						</el-form-item>
-						<el-form-item label="承兑日期" :rules="[{ message: '电话号码不能为空'}]">
-							<el-date-picker v-model="value2" type="date" placeholder="选择日期">
-							</el-date-picker>
-						</el-form-item>
-						<el-form-item label="最高贷款额度" :rules="[{  message: '身份证不能为空'}]">
-							<el-input v-model="form.max_mony" class="ipwidth" placeholder="请填写最高贷款额度" />
-						</el-form-item>
-						<el-form-item label="利息" :rules="[{  message: '身份证不能为空'}]">
-							<el-input v-model="form.rate" class="ipwidth" placeholder="请填写利息" />
-						</el-form-item>
+            <el-form-item label="汇票号码" :rules="[{ message: '姓名不能为空不能为空'}]">
+              <el-input v-model="form.nom" class="ipwidth" placeholder="请填写汇票号码" />
+            </el-form-item>
+            <el-form-item label="承兑日期" :rules="[{ message: '电话号码不能为空'}]">
+              <el-date-picker v-model="value2" type="date" placeholder="选择日期" />
+            </el-form-item>
+            <el-form-item label="最高贷款额度" :rules="[{ message: '身份证不能为空'}]">
+              <el-input v-model="form.max_mony" class="ipwidth" placeholder="请填写最高贷款额度" />
+            </el-form-item>
+            <el-form-item label="利息" :rules="[{ message: '身份证不能为空'}]">
+              <el-input v-model="form.rate" class="ipwidth" placeholder="请填写利息" />
+            </el-form-item>
 
+            </el-form-item>
+          </el-form>
+        </el-col>
+        <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" style="padding:0 15px;">
+          <el-form ref="form" :model="form" label-width="80px">
 
-						</el-form-item>
-					</el-form>
-				</el-col>
-				<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" style="padding:0 15px;">
-					<el-form ref="form" :model="form" label-width="80px">
-
-						<el-form-item label="承兑人">
-							<el-input v-model="form.accepetper" placeholder="请选择承兑人" class="ipwidth">
-							</el-input>
-							<!-- <el-dropdown>
+            <el-form-item label="承兑人">
+              <el-input v-model="form.accepetper" placeholder="请选择承兑人" class="ipwidth" />
+              <!-- <el-dropdown>
 							 <el-input v-model="form.accepetper" placeholder="请选择承兑人" class="ipwidth">
 							 </el-input>
 							  <el-dropdown-menu slot="dropdown">
@@ -155,243 +165,247 @@
 								<el-dropdown-item command="新增承兑人" divided>新增承兑人	</el-dropdown-item>
 							  </el-dropdown-menu>
 							</el-dropdown> -->
-						</el-form-item>
-						<el-form-item label="出票日期">
-							<el-date-picker v-model="value3" type="date" placeholder="选择日期" class="ipwidth">
-							</el-date-picker>
-						</el-form-item>
-						<el-form-item label="服务费率">
-							<el-input v-model="form.serpointo" class="ipwidth" placeholder="请填写服务费率" />
-						</el-form-item>
+            </el-form-item>
+            <el-form-item label="出票日期">
+              <el-date-picker v-model="value3" type="date" placeholder="选择日期" class="ipwidth" />
+            </el-form-item>
+            <el-form-item label="服务费率">
+              <el-input v-model="form.serpointo" class="ipwidth" placeholder="请填写服务费率" />
+            </el-form-item>
 
-					</el-form>
+          </el-form>
 
-				</el-col>
-				<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" style="padding:0 15px;">
-					<el-form ref="form" :model="form.drawper" label-width="85px">
-						<el-form-item label="出票人">
-							<el-input v-model="form.region" placeholder="请选择出票人" class="ipwidth">
-							</el-input>
-						</el-form-item>
-						<el-form-item label="汇票到期日">
-							<el-date-picker v-model="value4" type="date" placeholder="选择日期" class="ipwidth">
-							</el-date-picker>
-						</el-form-item>
-						<el-form-item label="服务费">
-							<el-input v-model="form.serpointt" class="ipwidth" placeholder="请填写服务费" />
-						</el-form-item>
-					</el-form>
+        </el-col>
+        <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" style="padding:0 15px;">
+          <el-form ref="form" :model="form.drawper" label-width="85px">
+            <el-form-item label="出票人">
+              <el-input v-model="form.region" placeholder="请选择出票人" class="ipwidth" />
+            </el-form-item>
+            <el-form-item label="汇票到期日">
+              <el-date-picker v-model="value4" type="date" placeholder="选择日期" class="ipwidth" />
+            </el-form-item>
+            <el-form-item label="服务费">
+              <el-input v-model="form.serpointt" class="ipwidth" placeholder="请填写服务费" />
+            </el-form-item>
+          </el-form>
 
-				</el-col>
+        </el-col>
 
-			</el-row>
-			<el-row>
-				<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" style="margin:0 30px;;">
-					<div class="titlesa">
-						<span>附件</span>
-						<span style="color: #D05C39;">*支持上传pdf、jpg/jpeg、png格式</span>
-					</div>
-					<div>
-						<el-upload accept=".pdf, .jpg, .jpeg, .png" action="https://ht.9026.com/api/File" :file-list="fileArr"
-							list-type="picture-card" :show-file-list="true" :auto-upload="false"
-							:before-upload="beforeUpload" :on-success="upSuccess" :on-error="upError"
-							:on-change="imgPreview">
+      </el-row>
+      <el-row>
+        <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" style="margin:0 30px;;">
+          <div class="titlesa">
+            <span>附件</span>
+            <span style="color: #D05C39;">*支持上传pdf、jpg/jpeg、png格式</span>
+          </div>
+          <div>
+            <el-upload
+              accept=".pdf, .jpg, .jpeg, .png"
+              action="https://ht.9026.com/api/File"
+              :file-list="fileArr"
+              list-type="picture-card"
+              :show-file-list="true"
+              :auto-upload="false"
+              :before-upload="beforeUpload"
+              :on-success="upSuccess"
+              :on-error="upError"
+              :on-change="imgPreview"
+            >
 
-							<i class="el-icon-plus"></i>
-						</el-upload>
-						<el-dialog :visible.sync="dialogVisible">
-							<img width="100%" :src="dialogImageUrl" alt="">
-						</el-dialog>
-					</div>
-				</el-col>
-			</el-row>
-			<div class="addnew">
-				<el-button type="primary" @click="deletedraft">删除汇票</el-button>
-			</div>
-		</el-card>
-		<div class="commit">
-			<div class="addnew">
-				<el-button type="primary" @click="adddraft">新增汇票</el-button>
-			</div>
-			<div class="addall">
-				<el-button type="warning" style="width: 180px;height: 45px;font-size: 16px;" @click="onSubmit">确认上传
-				</el-button>
-			</div>
-		</div>
+              <i class="el-icon-plus" />
+            </el-upload>
+            <el-dialog :visible.sync="dialogVisible">
+              <img width="100%" :src="dialogImageUrl" alt="">
+            </el-dialog>
+          </div>
+        </el-col>
+      </el-row>
+      <div class="addnew">
+        <el-button type="primary" @click="deletedraft">删除汇票</el-button>
+      </div>
+    </el-card>
+    <div class="commit">
+      <div class="addnew">
+        <el-button type="primary" @click="adddraft">新增汇票</el-button>
+      </div>
+      <div class="addall">
+        <el-button type="warning" style="width: 180px;height: 45px;font-size: 16px;" @click="onSubmit">确认上传
+        </el-button>
+      </div>
+    </div>
 
-	</div>
+  </div>
 </template>
 
 <script>
-	import pdf from 'vue-pdf'
-	export default {
-		components: {
-			pdf
-		},
-		data() {
-			return {
-				url: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
-				srcList: [
-					'https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg',
-					'https://fuss10.elemecdn.com/1/8e/aeffeb4de74e2fde4bd74fc7b4486jpeg.jpeg'
-				],
-				resource: '',
-				radio: '1',
-				activeNames: '',
-				list: [{
-					contractName: '',
-					contractNumber: '',
-					name: '',
-					money: '',
-					count: '',
-					nom: '',
-					max_mony: '',
-					rate: '',
-					serpointo: '',
-					serpointt: '',
-					drawper: '',
-					accepetper: ''
-				}, ],
-				form: {
-					contractName: '',
-					contractNumber: '',
-					name: '',
-					money: '',
-					count: '',
-					nom: '',
-					max_mony: '',
-					rate: '',
-					serpointo: '',
-					serpointt: '',
-					drawper: '',
-					accepetper: ''
-				},
-				pdfUrl: '',
-				numPages: [],
-				fileArr: [],
-				upLoadImgUrl: '',
-				pickerOptions: {
-					disabledDate(time) {
-						return time.getTime() > Date.now();
-					},
-					shortcuts: [{
-						text: '今天',
-						onClick(picker) {
-							picker.$emit('pick', new Date());
-						}
-					}, {
-						text: '昨天',
-						onClick(picker) {
-							const date = new Date();
-							date.setTime(date.getTime() - 3600 * 1000 * 24);
-							picker.$emit('pick', date);
-						}
-					}, {
-						text: '一周前',
-						onClick(picker) {
-							const date = new Date();
-							date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
-							picker.$emit('pick', date);
-						}
-					}]
-				},
-				value1: '',
-				value2: '',
-				value3: '',
-				value4: '',
-				dialogImageUrl: '',
-				dialogVisible: false,
-				disabled: false
-			}
-		},
-		methods: {
-			beforeUpload(file) {
-				const fileSuffix = file.name.substring(file.name.lastIndexOf(".") + 1);
-				const whiteList = ["pdf", "jpg", "jpeg", "png"];
-				if (whiteList.indexOf(fileSuffix) === -1) {
-					this.$msg("上传文件只能是 pdf、jpg、jpeg、png", "error");
-					return false;
-				}
-			},
-			imgPreview(file) {
-				this.fileArr = [];
-				this.fileArr.push(file);
-				this.form.position = "";
-				console.log(file);
-				this.form.position = file.name;
-				let fileName = file.name;
-				let regex = /(.jpg|.jpeg|.gif|.png|.pdf)$/;
-				if (regex.test(fileName.toLowerCase())) {
-					this.upLoadImgUrl = URL.createObjectURL(file.raw); // 获取URL
-					this.pdfUrl = this.getPdfUrl(file);
-					console.log(this.upLoadImgUrl);
-				} else {
-					this.$message.error("请选择图片文件");
-				}
-			},
-			// 上传成功
-			upSuccess(res) {
-				this.$message({
-					message: "上传成功",
-					type: "success",
-				});
-			},
-			// 上传失败
-			upError(e) {
-				this.$message({
-					message: "上传失败",
-					type: "error",
-				});
-			},
-			getPdfUrl(file) {
-				console.log(file);
-				let url = window.URL.createObjectURL(file.raw); //将文件转化成url
-				//加载pdf
-				let loadingTask = pdf.createLoadingTask(url);
-				loadingTask.promise
-					.then((pdf) => {
-						this.numPages = pdf.numPages;
-						console.log(this.numPages);
-					})
-					.catch((err) => {
-						console.error("pdf 加载失败", err);
-					});
-				return url;
-			},
-			onSubmit() {
-				this.$message('submit!')
-
-			},
-			onCancel() {
-				this.$message({
-					message: 'cancel!',
-					type: 'warning'
-				})
-			},
-			adddraft() {
-				let form = {
-					contractName: '',
-					contractNumber: '',
-					name: '',
-					money: '',
-					count: '',
-					nom: '',
-					max_mony: '',
-					rate: '',
-					serpointo: '',
-					serpointt: '',
-					drawper: '',
-					accepetper: ''
-				}
-				console.log(this.list)
-				this.list.push(form)
-			},
-			deletedraft(){
-				this.list.pop()
-				console.log(this.list)
-			}
-		}
-	}
+import pdf from 'vue-pdf'
+export default {
+  components: {
+    pdf
+  },
+  data() {
+    return {
+      url: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
+      srcList: [
+        'https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg',
+        'https://fuss10.elemecdn.com/1/8e/aeffeb4de74e2fde4bd74fc7b4486jpeg.jpeg'
+      ],
+      resource: '',
+      radio: '1',
+      activeNames: '',
+      list: [{
+        contractName: '',
+        contractNumber: '',
+        name: '',
+        money: '',
+        count: '',
+        nom: '',
+        max_mony: '',
+        rate: '',
+        serpointo: '',
+        serpointt: '',
+        drawper: '',
+        accepetper: ''
+      }],
+      form: {
+        contractName: '',
+        contractNumber: '',
+        name: '',
+        money: '',
+        count: '',
+        nom: '',
+        max_mony: '',
+        rate: '',
+        serpointo: '',
+        serpointt: '',
+        drawper: '',
+        accepetper: ''
+      },
+      pdfUrl: '',
+      numPages: [],
+      fileArr: [],
+      upLoadImgUrl: '',
+      pickerOptions: {
+        disabledDate(time) {
+          return time.getTime() > Date.now()
+        },
+        shortcuts: [{
+          text: '今天',
+          onClick(picker) {
+            picker.$emit('pick', new Date())
+          }
+        }, {
+          text: '昨天',
+          onClick(picker) {
+            const date = new Date()
+            date.setTime(date.getTime() - 3600 * 1000 * 24)
+            picker.$emit('pick', date)
+          }
+        }, {
+          text: '一周前',
+          onClick(picker) {
+            const date = new Date()
+            date.setTime(date.getTime() - 3600 * 1000 * 24 * 7)
+            picker.$emit('pick', date)
+          }
+        }]
+      },
+      value1: '',
+      value2: '',
+      value3: '',
+      value4: '',
+      dialogImageUrl: '',
+      dialogVisible: false,
+      disabled: false
+    }
+  },
+  methods: {
+    beforeUpload(file) {
+      const fileSuffix = file.name.substring(file.name.lastIndexOf('.') + 1)
+      const whiteList = ['pdf', 'jpg', 'jpeg', 'png']
+      if (whiteList.indexOf(fileSuffix) === -1) {
+        this.$msg('上传文件只能是 pdf、jpg、jpeg、png', 'error')
+        return false
+      }
+    },
+    imgPreview(file) {
+      this.fileArr = []
+      this.fileArr.push(file)
+      this.form.position = ''
+      console.log(file)
+      this.form.position = file.name
+      const fileName = file.name
+      const regex = /(.jpg|.jpeg|.gif|.png|.pdf)$/
+      if (regex.test(fileName.toLowerCase())) {
+        this.upLoadImgUrl = URL.createObjectURL(file.raw) // 获取URL
+        this.pdfUrl = this.getPdfUrl(file)
+        console.log(this.upLoadImgUrl)
+      } else {
+        this.$message.error('请选择图片文件')
+      }
+    },
+    // 上传成功
+    upSuccess(res) {
+      this.$message({
+        message: '上传成功',
+        type: 'success'
+      })
+    },
+    // 上传失败
+    upError(e) {
+      this.$message({
+        message: '上传失败',
+        type: 'error'
+      })
+    },
+    getPdfUrl(file) {
+      console.log(file)
+      const url = window.URL.createObjectURL(file.raw) // 将文件转化成url
+      // 加载pdf
+      const loadingTask = pdf.createLoadingTask(url)
+      loadingTask.promise
+        .then((pdf) => {
+          this.numPages = pdf.numPages
+          console.log(this.numPages)
+        })
+        .catch((err) => {
+          console.error('pdf 加载失败', err)
+        })
+      return url
+    },
+    onSubmit() {
+      this.$message('submit!')
+    },
+    onCancel() {
+      this.$message({
+        message: 'cancel!',
+        type: 'warning'
+      })
+    },
+    adddraft() {
+      const form = {
+        contractName: '',
+        contractNumber: '',
+        name: '',
+        money: '',
+        count: '',
+        nom: '',
+        max_mony: '',
+        rate: '',
+        serpointo: '',
+        serpointt: '',
+        drawper: '',
+        accepetper: ''
+      }
+      console.log(this.list)
+      this.list.push(form)
+    },
+    deletedraft() {
+      this.list.pop()
+      console.log(this.list)
+    }
+  }
+}
 </script>
 
 <style lang="scss">
@@ -403,7 +417,6 @@
 		width: 100%;
 	}
 
-
 	.el-radio__label {
 		margin-left: 80px;
 	}

+ 150 - 162
src/views/contracts/addnewbill.vue

xqd xqd xqd
@@ -1,44 +1,37 @@
 <template>
   <div class="app-container">
-     <el-card class="box-card" style="padding: 20px 10px;">
-    <el-row >
+    <el-card class="box-card" style="padding: 20px 10px;">
+      <el-row>
         <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" style="padding:0 15px;">
           <el-form ref="form" :model="form" label-width="90px">
-
-            <el-form-item label="汇票名称" :rules="[{  message: '姓名不能为空不能为空'}]">
-              <el-input v-model="form.name" class="ipwidth"  placeholder="请填写汇票名称"/>
+            <el-form-item label="汇票名称" :rules="[{ message: '姓名不能为空不能为空'}]">
+              <el-input v-model="form.name" class="ipwidth" placeholder="请填写汇票名称" />
             </el-form-item>
             <el-form-item label="金额" :rules="[{ message: '电话号码不能为空'}]">
-              <el-input v-model="form.money" class="ipwidth"  placeholder="请填写金额"/>
-            </el-form-item>
-            <el-form-item label="预计贴现日" :rules="[{  message: '身份证不能为空'}]">
-              <el-date-picker v-model="value1" type="date" placeholder="选择日期">
-              </el-date-picker>
+              <el-input v-model="form.money" class="ipwidth" placeholder="请填写金额" />
             </el-form-item>
-            <el-form-item label="利率" :rules="[{  message: '身份证不能为空'}]">
-              <el-input v-model="form.count" class="ipwidth"  placeholder="请填写利率"/>
+            <el-form-item label="预计贴现日" :rules="[{ message: '身份证不能为空'}]">
+              <el-date-picker v-model="value1" type="date" placeholder="选择日期" />
             </el-form-item>
+            <el-form-item label="利率" :rules="[{ message: '身份证不能为空'}]">
+              <el-input v-model="form.count" class="ipwidth" placeholder="请填写利率" />
             </el-form-item>
           </el-form>
         </el-col>
         <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" style="padding:0 15px;">
           <el-form ref="form" :model="form" label-width="110px">
 
-            <el-form-item label="汇票号码" :rules="[{  message: '姓名不能为空不能为空'}]">
-              <el-input v-model="form.nom" class="ipwidth" placeholder="请填写汇票号码"/>
+            <el-form-item label="汇票号码" :rules="[{ message: '姓名不能为空不能为空'}]">
+              <el-input v-model="form.nom" class="ipwidth" placeholder="请填写汇票号码" />
             </el-form-item>
             <el-form-item label="承兑日期" :rules="[{ message: '电话号码不能为空'}]">
-             <el-date-picker v-model="value2" type="date" placeholder="选择日期">
-             </el-date-picker>
+              <el-date-picker v-model="value2" type="date" placeholder="选择日期" />
             </el-form-item>
-            <el-form-item label="最高贷款额度" :rules="[{  message: '身份证不能为空'}]">
-              <el-input v-model="form.max_mony" class="ipwidth"  placeholder="请填写最高贷款额度"/>
+            <el-form-item label="最高贷款额度" :rules="[{ message: '身份证不能为空'}]">
+              <el-input v-model="form.max_mony" class="ipwidth" placeholder="请填写最高贷款额度" />
             </el-form-item>
-            <el-form-item label="利息" :rules="[{  message: '身份证不能为空'}]">
-              <el-input v-model="form.rate" class="ipwidth" placeholder="请填写利息"/>
-            </el-form-item>
-
-
+            <el-form-item label="利息" :rules="[{ message: '身份证不能为空'}]">
+              <el-input v-model="form.rate" class="ipwidth" placeholder="请填写利息" />
             </el-form-item>
           </el-form>
         </el-col>
@@ -46,168 +39,164 @@
           <el-form ref="form" :model="form" label-width="80px">
 
             <el-form-item label="承兑人">
-                <el-select v-model="form.region" placeholder="请选择承兑人" class="ipwidth">
-                    <el-option label="区域一" value="shanghai"></el-option>
-                    <el-option label="区域二" value="beijing"></el-option>
-                  </el-select>
+              <el-select v-model="form.region" placeholder="请选择承兑人" class="ipwidth">
+                <el-option label="区域一" value="shanghai" />
+                <el-option label="区域二" value="beijing" />
+              </el-select>
             </el-form-item>
             <el-form-item label="出票日期">
-             <el-date-picker v-model="value3" type="date" placeholder="选择日期" class="ipwidth" >
-             </el-date-picker>
+              <el-date-picker v-model="value3" type="date" placeholder="选择日期" class="ipwidth" />
             </el-form-item>
             <el-form-item label="服务费率">
-              <el-input v-model="form.serpointo" class="ipwidth" placeholder="请填写服务费率"/>
+              <el-input v-model="form.serpointo" class="ipwidth" placeholder="请填写服务费率" />
             </el-form-item>
 
           </el-form>
 
         </el-col>
         <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" style="padding:0 15px;">
-           <el-form ref="form" :model="form" label-width="85px">
-             <el-form-item label="出票人">
-                <el-select v-model="form.region" placeholder="请选择出票人" class="ipwidth">
-                    <el-option label="区域一" value="shanghai"></el-option>
-                    <el-option label="区域二" value="beijing"></el-option>
-                  </el-select>
-             </el-form-item>
-             <el-form-item label="汇票到期日">
-               <el-date-picker v-model="value4" type="date" placeholder="选择日期" class="ipwidth" >
-               </el-date-picker>
-             </el-form-item>
-             <el-form-item label="服务费">
-               <el-input v-model="form.serpointt" class="ipwidth" placeholder="请填写服务费"/>
-             </el-form-item>
-           </el-form>
+          <el-form ref="form" :model="form" label-width="85px">
+            <el-form-item label="出票人">
+              <el-select v-model="form.region" placeholder="请选择出票人" class="ipwidth">
+                <el-option label="区域一" value="shanghai" />
+                <el-option label="区域二" value="beijing" />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="汇票到期日">
+              <el-date-picker v-model="value4" type="date" placeholder="选择日期" class="ipwidth" />
+            </el-form-item>
+            <el-form-item label="服务费">
+              <el-input v-model="form.serpointt" class="ipwidth" placeholder="请填写服务费" />
+            </el-form-item>
+          </el-form>
 
-         </el-col>
+        </el-col>
 
-    </el-row>
-     <el-row>
-            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" style="margin:0 30px;;">
-              <div class="titlesa">
-                <p>附件</p>
-                <p style="color: #D05C39;">*支持上传pdf、jpg/jpeg、png格式</p>
-              </div>
-              <div>
-                <el-upload action="#" list-type="picture-card" :auto-upload="false">
-                  <i slot="default" class="el-icon-plus"></i>
-                  <div slot="file" slot-scope="{file}">
-                    <img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
-                    <span class="el-upload-list__item-actions">
-                      <span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
-                        <i class="el-icon-zoom-in"></i>
-                      </span>
-                      <span v-if="!disabled" class="el-upload-list__item-delete" @click="handleDownload(file)">
-                        <i class="el-icon-download"></i>
-                      </span>
-                      <span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)">
-                        <i class="el-icon-delete"></i>
-                      </span>
-                    </span>
-                  </div>
-                </el-upload>
-                <el-dialog :visible.sync="dialogVisible">
-                  <img width="100%" :src="dialogImageUrl" alt="">
-                </el-dialog>
-              </div>
-            </el-col>
-          </el-row>
-          <div class="addnew">
-            <el-button type="info" >新增汇票</el-button>
+      </el-row>
+      <el-row>
+        <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" style="margin:0 30px;;">
+          <div class="titlesa">
+            <p>附件</p>
+            <p style="color: #D05C39;">*支持上传pdf、jpg/jpeg、png格式</p>
           </div>
-          <div class="addall">
-            <el-button type="warning" style="width: 180px;height: 45px;font-size: 16px;">确认上传</el-button>
+          <div>
+            <el-upload action="#" list-type="picture-card" :auto-upload="false">
+              <i slot="default" class="el-icon-plus" />
+              <div slot="file" slot-scope="{file}">
+                <img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
+                <span class="el-upload-list__item-actions">
+                  <span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
+                    <i class="el-icon-zoom-in" />
+                  </span>
+                  <span v-if="!disabled" class="el-upload-list__item-delete" @click="handleDownload(file)">
+                    <i class="el-icon-download" />
+                  </span>
+                  <span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)">
+                    <i class="el-icon-delete" />
+                  </span>
+                </span>
+              </div>
+            </el-upload>
+            <el-dialog :visible.sync="dialogVisible">
+              <img width="100%" :src="dialogImageUrl" alt="">
+            </el-dialog>
           </div>
-     </el-card>
-
-     <div>
-
-     </div>
+        </el-col>
+      </el-row>
+      <div class="addnew">
+        <el-button type="info">新增汇票</el-button>
+      </div>
+      <div class="addall">
+        <el-button type="warning" style="width: 180px;height: 45px;font-size: 16px;">确认上传</el-button>
+      </div>
+    </el-card>
+
+    <div />
   </div>
 </template>
 
 <script>
-  export default {
-    data() {
-      return {
-        url: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
-        srcList: [
-          'https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg',
-          'https://fuss10.elemecdn.com/1/8e/aeffeb4de74e2fde4bd74fc7b4486jpeg.jpeg'
-        ],
-        resource: '',
-        radio: '1',
-        activeNames: '',
-        form: {
-          name: '',
-          money:'',
-          count:'',
-          nom:'',
-          max_mony:'',
-          rate:'',
-          serpointo:'',
-          serpointt:'',
+export default {
+  data() {
+    return {
+      url: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg',
+      srcList: [
+        'https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg',
+        'https://fuss10.elemecdn.com/1/8e/aeffeb4de74e2fde4bd74fc7b4486jpeg.jpeg'
+      ],
+      resource: '',
+      radio: '1',
+      activeNames: '',
+      form: {
+        name: '',
+        money: '',
+        count: '',
+        nom: '',
+        max_mony: '',
+        rate: '',
+        serpointo: '',
+        serpointt: ''
 
+      },
+      pickerOptions: {
+        disabledDate(time) {
+          return time.getTime() > Date.now()
         },
-        pickerOptions: {
-          disabledDate(time) {
-            return time.getTime() > Date.now();
-          },
-          shortcuts: [{
-            text: '今天',
-            onClick(picker) {
-              picker.$emit('pick', new Date());
-            }
-          }, {
-            text: '昨天',
-            onClick(picker) {
-              const date = new Date();
-              date.setTime(date.getTime() - 3600 * 1000 * 24);
-              picker.$emit('pick', date);
-            }
-          }, {
-            text: '一周前',
-            onClick(picker) {
-              const date = new Date();
-              date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
-              picker.$emit('pick', date);
-            }
-          }]
-        },
-        value1: '',
-        value2: '',
-         value3: '',
-         value4: '',
-          dialogImageUrl: '',
-                 dialogVisible: false,
-                 disabled: false
-      }
+        shortcuts: [{
+          text: '今天',
+          onClick(picker) {
+            picker.$emit('pick', new Date())
+          }
+        }, {
+          text: '昨天',
+          onClick(picker) {
+            const date = new Date()
+            date.setTime(date.getTime() - 3600 * 1000 * 24)
+            picker.$emit('pick', date)
+          }
+        }, {
+          text: '一周前',
+          onClick(picker) {
+            const date = new Date()
+            date.setTime(date.getTime() - 3600 * 1000 * 24 * 7)
+            picker.$emit('pick', date)
+          }
+        }]
+      },
+      value1: '',
+      value2: '',
+      value3: '',
+      value4: '',
+      dialogImageUrl: '',
+      dialogVisible: false,
+      disabled: false
+    }
+  },
+  methods: {
+    handleRemove(file) {
+      console.log(file)
+    },
+    handlePictureCardPreview(file) {
+      this.dialogImageUrl = file.url
+      this.dialogVisible = true
     },
-    methods: {
-        handleRemove(file) {
-              console.log(file);
-            },
-            handlePictureCardPreview(file) {
-              this.dialogImageUrl = file.url;
-              this.dialogVisible = true;
-            },
-            handleDownload(file) {
-              console.log(file);
-            },
-      handleChange() {
+    handleDownload(file) {
+      console.log(file)
+    },
+    handleChange() {
 
-      },
-      onSubmit() {
-        this.$message('submit!')
-      },
-      onCancel() {
-        this.$message({
-          message: 'cancel!',
-          type: 'warning'
-        })
-      }
+    },
+    onSubmit() {
+      this.$message('submit!')
+    },
+    onCancel() {
+      this.$message({
+        message: 'cancel!',
+        type: 'warning'
+      })
     }
   }
+}
 </script>
 
 <style lang="scss">
@@ -219,7 +208,6 @@
     width: 100%;
   }
 
-
   .el-radio__label {
     margin-left: 80px;
   }

+ 139 - 133
src/views/contracts/billDetail.vue

xqd xqd
@@ -1,140 +1,146 @@
 <template>
-	<div>
-		<el-descriptions title="汇票详情">
-		    <el-descriptions-item label="汇票名">{{list[0].name}}</el-descriptions-item>
-		    <el-descriptions-item label="汇票编号">{{list[0].draftNo}}</el-descriptions-item>
-		    <el-descriptions-item label="承兑人">{{list[0].acceptorName}}</el-descriptions-item>
-			<el-descriptions-item label="出票人">{{list[0].drawersName}}</el-descriptions-item>
-			<el-descriptions-item label="金额">{{list[0].money}}</el-descriptions-item>
-			<el-descriptions-item label="最高贷款额度">{{list[0].loanLimit}}</el-descriptions-item>
-			<el-descriptions-item label="服务费率">{{list[0].serviceRate}}</el-descriptions-item>
-			<el-descriptions-item label="服务费">{{list[0].serviceMoney}}</el-descriptions-item>
-			<el-descriptions-item label="利率">{{list[0].interestRate}}</el-descriptions-item>
-			<el-descriptions-item label="利息">{{list[0].interest}}</el-descriptions-item>
-			<el-descriptions-item label="承兑日期">{{list[0].acceptDate}}</el-descriptions-item>
-			<el-descriptions-item label="出票日期">{{list[0].expireDate}}</el-descriptions-item>
-		    <el-descriptions-item label="预计贴现日">{{list[0].expectDiscountDate}}</el-descriptions-item>
-			<el-descriptions-item label="附件">
-			<el-image style="width: 100px; height: 100px" :src="list[0].picList" :preview-src-list="list[0].picList">
-			</el-image>
-			</el-descriptions-item>
-			<el-descriptions-item label="审核状态" >{{list[0].statusText}}</el-descriptions-item>
-			<el-descriptions-item label="审核反馈" v-if="checked==1">{{list[0].feedback}}</el-descriptions-item>
-			<el-descriptions-item label="反馈截图" v-if="checked==1">
-			<el-image style="width: 100px; height: 100px" :src="list[0].feedbackPicList" :preview-src-list="list[0].picList">
-			</el-image>
-			</el-descriptions-item>
-		</el-descriptions>
-		<el-input
-		  type="textarea"
-		  placeholder="请输入审核反馈内容"
-		  style="width: 200px;"
-		  v-model="feed.feedback"
-		  v-if="checked==0">
-		</el-input>
-		<el-row v-if="checked==0">
-			<el-col  style="margin:0 auto;">
-				<div class="titlesa">
-					<span>上传反馈截图</span>
-				</div>
-				<div>
-					<el-upload accept=".pdf, .jpg, .jpeg, .png" action="#" :file-list="fileArr" list-type="picture-card"
-						:show-file-list="true" :auto-upload="false" :before-upload="beforeUpload"
-						:on-success="upSuccess" :on-error="upError" :on-change="imgPreview">
-		
-						<i class="el-icon-plus"></i>
-					</el-upload>
-					<el-dialog :visible.sync="dialogVisible">
-						<img width="100%" :src="feed.feedbackPicList" alt="">
-					</el-dialog>
-				</div>
-			</el-col>
-		</el-row>
-		<div class="btn">
-			<el-button type="success" v-if="checked==0" @click="success">审核成功</el-button>
-			<el-button type="danger" v-if="checked==0" @click="failed">审核失败</el-button>
-			<el-button type="primary"  @click="back">返回</el-button>
-		</div>
-	</div>
-	 
+  <div>
+    <el-descriptions title="汇票详情">
+      <el-descriptions-item label="汇票名">{{ list[0].name }}</el-descriptions-item>
+      <el-descriptions-item label="汇票编号">{{ list[0].draftNo }}</el-descriptions-item>
+      <el-descriptions-item label="承兑人">{{ list[0].acceptorName }}</el-descriptions-item>
+      <el-descriptions-item label="出票人">{{ list[0].drawersName }}</el-descriptions-item>
+      <el-descriptions-item label="金额">{{ list[0].money }}</el-descriptions-item>
+      <el-descriptions-item label="最高贷款额度">{{ list[0].loanLimit }}</el-descriptions-item>
+      <el-descriptions-item label="服务费率">{{ list[0].serviceRate }}</el-descriptions-item>
+      <el-descriptions-item label="服务费">{{ list[0].serviceMoney }}</el-descriptions-item>
+      <el-descriptions-item label="利率">{{ list[0].interestRate }}</el-descriptions-item>
+      <el-descriptions-item label="利息">{{ list[0].interest }}</el-descriptions-item>
+      <el-descriptions-item label="承兑日期">{{ list[0].acceptDate }}</el-descriptions-item>
+      <el-descriptions-item label="出票日期">{{ list[0].expireDate }}</el-descriptions-item>
+      <el-descriptions-item label="预计贴现日">{{ list[0].expectDiscountDate }}</el-descriptions-item>
+      <el-descriptions-item label="附件">
+        <el-image style="width: 100px; height: 100px" :src="list[0].picList" :preview-src-list="list[0].picList" />
+      </el-descriptions-item>
+      <el-descriptions-item label="审核状态">{{ list[0].statusText }}</el-descriptions-item>
+      <el-descriptions-item v-if="checked==1" label="审核反馈">{{ list[0].feedback }}</el-descriptions-item>
+      <el-descriptions-item v-if="checked==1" label="反馈截图">
+        <el-image style="width: 100px; height: 100px" :src="list[0].feedbackPicList" :preview-src-list="list[0].picList" />
+      </el-descriptions-item>
+    </el-descriptions>
+    <el-input
+      v-if="checked==0"
+      v-model="feed.feedback"
+      type="textarea"
+      placeholder="请输入审核反馈内容"
+      style="width: 200px;"
+    />
+    <el-row v-if="checked==0">
+      <el-col style="margin:0 auto;">
+        <div class="titlesa">
+          <span>上传反馈截图</span>
+        </div>
+        <div>
+          <el-upload
+            accept=".pdf, .jpg, .jpeg, .png"
+            action="#"
+            :file-list="fileArr"
+            list-type="picture-card"
+            :show-file-list="true"
+            :auto-upload="false"
+            :before-upload="beforeUpload"
+            :on-success="upSuccess"
+            :on-error="upError"
+            :on-change="imgPreview"
+          >
+
+            <i class="el-icon-plus" />
+          </el-upload>
+          <el-dialog :visible.sync="dialogVisible">
+            <img width="100%" :src="feed.feedbackPicList" alt="">
+          </el-dialog>
+        </div>
+      </el-col>
+    </el-row>
+    <div class="btn">
+      <el-button v-if="checked==0" type="success" @click="success">审核成功</el-button>
+      <el-button v-if="checked==0" type="danger" @click="failed">审核失败</el-button>
+      <el-button type="primary" @click="back">返回</el-button>
+    </div>
+  </div>
 
 </template>
 
 <script>
-	export default{
-		data(){
-			return{
-				list:[],
-				checked:'',
-				feed:{
-					feedback:'',
-					feedbackPicList:[
-						"https:\/\/easygolf.oss-ap-southeast-6.aliyuncs.com\/golf\/2022-03\/18\/88df7532ff7de229b617.jpg",
-					],
-					id:'',
-					approveStatus:'',
-				}
-				
-			}
-		},
-		mounted() {
-			this.checked = this.$store.state.user.checked
-			this.feed.id=this.$route.query.id
-			let id=this.$route.query.id
-			this.$request({
-				url:'/api/Contract/contractDraft/'+id,
-				method:'get'
-			}).then((res)=>{
-				this.list.push(res.data)
-				console.log(this.list)
-			})
-		},
-		methods:{
-			success(){
-				this.feed.approveStatus=1
-				this.$request({
-					url:'api/Contract/approveContractDraft',
-					method:'post',
-					data:this.feed
-				}).then((res)=>{
-					if(res.code==200){
-						this.$message({
-							type:'success',
-							message:'提交成功'
-						})
-					}else{
-						this.$message({
-							type:'success',
-							message:'提交失败'
-						})
-					}
-				})
-			},
-			failed(){
-				this.feed.approveStatus=2
-				this.$request({
-					url:'api/Contract/approveContractDraft',
-					method:'post',
-					data:this.feed
-				}).then((res)=>{
-					if(res.code==200){
-						this.$message({
-							type:'success',
-							message:'提交成功'
-						})
-					}else{
-						this.$message({
-							type:'success',
-							message:'提交失败'
-						})
-					}
-				})
-			},
-			back(){
-				this.$router.go (-1)
-			},
-		}
-	}
+export default {
+  data() {
+    return {
+      list: [],
+      checked: '',
+      feed: {
+        feedback: '',
+        feedbackPicList: [
+          'https:\/\/easygolf.oss-ap-southeast-6.aliyuncs.com\/golf\/2022-03\/18\/88df7532ff7de229b617.jpg'
+        ],
+        id: '',
+        approveStatus: ''
+      }
+
+    }
+  },
+  mounted() {
+    this.checked = this.$store.state.user.checked
+    this.feed.id = this.$route.query.id
+    const id = this.$route.query.id
+    this.$request({
+      url: '/api/Contract/contractDraft/' + id,
+      method: 'get'
+    }).then((res) => {
+      this.list.push(res.data)
+      console.log(this.list)
+    })
+  },
+  methods: {
+    success() {
+      this.feed.approveStatus = 1
+      this.$request({
+        url: 'api/Contract/approveContractDraft',
+        method: 'post',
+        data: this.feed
+      }).then((res) => {
+        if (res.code == 200) {
+          this.$message({
+            type: 'success',
+            message: '提交成功'
+          })
+        } else {
+          this.$message({
+            type: 'success',
+            message: '提交失败'
+          })
+        }
+      })
+    },
+    failed() {
+      this.feed.approveStatus = 2
+      this.$request({
+        url: 'api/Contract/approveContractDraft',
+        method: 'post',
+        data: this.feed
+      }).then((res) => {
+        if (res.code == 200) {
+          this.$message({
+            type: 'success',
+            message: '提交成功'
+          })
+        } else {
+          this.$message({
+            type: 'success',
+            message: '提交失败'
+          })
+        }
+      })
+    },
+    back() {
+      this.$router.go(-1)
+    }
+  }
+}
 </script>
 
 <style lang="scss">
@@ -142,4 +148,4 @@
 		display: flex;
 		// justify-content: space-around;
 	}
-</style>
+</style>

+ 139 - 0
src/views/contracts/components/ListFilterForm.vue

xqd
@@ -0,0 +1,139 @@
+<template>
+  <el-row type="flex" justify="space-between" style="margin-bottom: 20px">
+    <div class="grid-content bg-purple">
+      <el-input
+        v-model="form.name"
+        placeholder="合同名称/编号、承兑人名称或出票..."
+        clearable
+        style="width: 100%"
+        @change="handleFilter"
+      >
+        <i slot="prefix" class="el-input__icon el-icon-search" />
+      </el-input>
+    </div>
+    <div class="grid-content bg-purple">
+      <el-dropdown @command="handleCommand">
+        <div class="pulldown">
+          <span v-if="!status" class="el-dropdown-link"> 合同状态 </span>
+          <span v-if="status" class="el-dropdown-link">
+            {{ status }}
+          </span>
+          <i class="el-icon-arrow-down el-icon--right" />
+        </div>
+        <el-dropdown-menu slot="dropdown">
+          <el-dropdown-item command="合同状态">合同状态</el-dropdown-item>
+          <el-dropdown-item command="正常">正常</el-dropdown-item>
+          <el-dropdown-item command="删除">删除</el-dropdown-item>
+        </el-dropdown-menu>
+      </el-dropdown>
+    </div>
+    <div class="grid-content bg-purple">
+      <el-dropdown @command="handlehpCommand">
+        <div class="pulldown">
+          <span v-if="!hpstatus" class="el-dropdown-link"> 汇票状态 </span>
+          <span v-if="hpstatus" class="el-dropdown-link">
+            {{ hpstatus }}
+          </span>
+          <i class="el-icon-arrow-down el-icon--right" />
+        </div>
+        <el-dropdown-menu slot="dropdown">
+          <el-dropdown-item command="汇票状态">汇票状态</el-dropdown-item>
+          <el-dropdown-item command="正常">正常</el-dropdown-item>
+          <el-dropdown-item command="删除">删除</el-dropdown-item>
+        </el-dropdown-menu>
+      </el-dropdown>
+    </div>
+    <div class="grid-content bg-purple">
+      <el-dropdown @command="handleCommandAuditstatus">
+        <div class="pulldown">
+          <span v-if="!Auditstatus" class="el-dropdown-link"> 审核状态 </span>
+          <span v-if="Auditstatus" class="el-dropdown-link">
+            {{ Auditstatus }}
+          </span>
+          <i class="el-icon-arrow-down el-icon--right" />
+        </div>
+        <el-dropdown-menu slot="dropdown">
+          <el-dropdown-item command="审核状态">审核状态</el-dropdown-item>
+          <el-dropdown-item command="待审核">待审核</el-dropdown-item>
+          <el-dropdown-item command="成功">成功</el-dropdown-item>
+          <el-dropdown-item command="失败">失败</el-dropdown-item>
+        </el-dropdown-menu>
+      </el-dropdown>
+    </div>
+    <div class="grid-content bg-purple">
+      <div class="block">
+        <el-date-picker
+          v-model="value2"
+          type="daterange"
+          align="right"
+          unlink-panels
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          :picker-options="pickerOptions"
+          value-format="yyyy-MM-dd"
+          @change="handleFilter"
+        />
+      </div>
+    </div>
+  </el-row>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      form: {
+        startTime: '',
+        endTime: '',
+        name: '',
+        contractStatus: 0,
+        draftStatus: '',
+        supplierName: ''
+      },
+      pickerOptions: {
+        shortcuts: [{
+          text: '最近一周',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+            picker.$emit('pick', [start, end])
+          }
+        },
+        {
+          text: '最近一个月',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+            picker.$emit('pick', [start, end])
+          }
+        },
+        {
+          text: '最近三个月',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+            picker.$emit('pick', [start, end])
+          }
+        }
+        ]
+      }
+    }
+  },
+  methods: {
+    handleFilter() {
+      this.$emit('filter', {
+        ...this.form,
+        pageIndex: 1
+      })
+    }
+  }
+}
+</script>
+
+<style>
+
+</style>

+ 99 - 0
src/views/contracts/components/ListTable.vue

xqd
@@ -0,0 +1,99 @@
+<template>
+  <TableWrapper
+    :loading="loading"
+    :pagination="pagination"
+    @change="onChange"
+  >
+    <el-table
+      :data="data"
+      element-loading-text="Loading"
+      border
+      fit
+      highlight-current-row
+      @select="onSelectChange"
+      @select-all="onSelectChange"
+    >
+      <el-table-column align="center" label="" width="55" type="selection" />
+      <el-table-column label="合同名称" align="center" prop="name" />
+      <el-table-column label="合同编号" align="center" prop="contractNo" width="155" />
+      <el-table-column label="承兑人" align="center" prop="acceptorName" />
+      <el-table-column label="出票人" align="center" prop="drawersName" />
+      <el-table-column label="汇票状态" align="center" prop="draftStatusText" />
+      <el-table-column label="合同状态" align="center" prop="contractStatusText" />
+      <el-table-column class-name="status-col" label="审核状态" align="center" prop="statusText" />
+      <el-table-column align="center" label="时间" prop="createdAt" width="155" />
+      <el-table-column align="center" prop="created_at" label="操作" width="250">
+        <template slot-scope="scope">
+          <div class="result-table-btns">
+            <!-- <el-button
+              type="primary"
+              @click="$emit('onShow', scope.row)"
+            >详情</el-button>
+            <el-button
+              type="primary"
+              @click="$emit('onEdit', scope.row)"
+            >修改</el-button>
+            <el-button
+              type="primary"
+              @click="$emit('onDelete', scope.row)"
+            >删除</el-button> -->
+            <el-tag class="table-btn" type="primary" style="cursor: pointer" @click="$emit('onShow', scope.row)">详情</el-tag>
+            <el-tag class="table-btn" type="success" style="cursor: pointer" @click="$emit('onEdit', scope.row)">修改</el-tag>
+            <el-tag class="table-btn" type="danger" style="cursor: pointer" @click="$emit('onDelete', scope.row)">删除</el-tag>
+            <el-tag class="table-btn" type="primary" style="cursor: pointer" @click="$emit('onAudit', scope.row)">审核</el-tag>
+          </div>
+          <!-- <el-tag type="primary" style="cursor: pointer" @click="tapDetail(scope.row.id)">查看详情</el-tag>
+          <el-tag v-if="checked === 0" type="success" style="cursor: pointer" @click="Ssuccessed(scope.row.id)">
+            审核成功</el-tag>
+          <el-tag v-if="checked === 0" type="danger" style="cursor: pointer" @click="Sfailed(scope.row.id)">审核失败
+          </el-tag>
+          <el-tag v-if="checked === 1" type="success" style="cursor: pointer">恢复
+          </el-tag>
+          <el-tag v-if="checked === 1" type="danger" style="cursor: pointer">删除</el-tag> -->
+        </template>
+      </el-table-column>
+    </el-table>
+  </TableWrapper>
+</template>
+
+<script>
+
+export default {
+  props: {
+    data: {
+      type: Array,
+      default() {
+        return []
+      }
+    },
+    pagination: {
+      type: Object,
+      default() {
+        return {}
+      }
+    },
+    loading: {
+      type: Boolean,
+      default() {
+        return false
+      }
+    }
+  },
+  methods: {
+    onChange(pagination) {
+      this.$emit('filter', {
+        pageIndex: pagination.pageIndex,
+        pageSize: pagination.pageSize
+      })
+    },
+    onSelectChange(rows, currentRow) {
+      this.$emit('update:selectedRows', rows)
+    }
+  }
+}
+</script>
+<style scoped>
+.table-btn +.table-btn{
+  margin-left: 5px;
+}
+</style>

+ 456 - 417
src/views/contracts/detail.vue

xqd xqd xqd
@@ -1,425 +1,467 @@
 <template>
-	<div>
-		<el-card class="box-card">
-			<el-col :xs="24" :sm="24" :md="10" :lg="10" :xl="12">
-				<div class="grid-content bg-purple ">
-					<span style="font-weight: 600;">合同基础信息</span>
-					<div class="titlein">
-						<span class="titlename">合同名称</span>
-						<span class="meatatitle">{{contract.name}}</span>
-					</div>
-					<div class="titlein">
-						<span class="titlename">合同编号</span>
-						<span class="meatatitle">{{contract.contractNo}}</span>
-					</div>
-					<div class="titlein">
-						<span class="titlename">合同附件</span>
-						<div style="display: flex;">
-							<div class="imgbox">
-								<el-image style="width: 100px; height: 100px" :src="url[0]"
-									:preview-src-list="picList[0]">
-								</el-image>
-							</div>
-							<div class="imgbox">
-								<el-image style="width: 100px; height: 100px" :src="url[1]"
-									:preview-src-list="picList[1]">
-								</el-image>
-							</div>
-						</div>
-					</div>
-					<div class="titlein">
-						<span class="titlename">发票附件</span>
-						<div style="display: flex;">
-							<div class="imgbox">
-								<el-image style="width: 100px; height: 100px" :src="url[1]"
-									:preview-src-list="picList[1]">
-								</el-image>
-							</div>
-							<div class="imgbox">
-								<el-image style="width: 100px; height: 100px" :src="url[1]"
-									:preview-src-list="picList[1]">
-								</el-image>
-							</div>
-						</div>
-					</div>
-
-				</div>
-			</el-col>
-			<el-col :xs="24" :sm="24" :md="14" :lg="14" :xl="12">
-				<div class="jas">
-					<div class="titlein jas">
-						<span class="titlename">贸易合同</span>
-						<div style="display: flex;">
-							<div class="imgbox">
-								<el-image style="width: 100px; height: 100px" :src="url[0]"
-									:preview-src-list="picList[0]">
-								</el-image>
-							</div>
-							<div class="imgbox">
-								<el-image style="width: 100px; height: 100px" :src="url[1]"
-									:preview-src-list="picList[1]">
-								</el-image>
-							</div>
-						</div>
-					</div>
-					<div class="yusa jas">
-						<!-- <el-tag type="warning" effect="dark">
+  <div>
+    <el-card class="box-card">
+      <el-col :xs="24" :sm="24" :md="10" :lg="10" :xl="12">
+        <div class="grid-content bg-purple ">
+          <span style="font-weight: 600;">合同基础信息</span>
+          <div class="titlein">
+            <span class="titlename">合同名称</span>
+            <span class="meatatitle">{{ contract.name }}</span>
+          </div>
+          <div class="titlein">
+            <span class="titlename">合同编号</span>
+            <span class="meatatitle">{{ contract.contractNo }}</span>
+          </div>
+          <div class="titlein">
+            <span class="titlename">合同附件</span>
+            <div style="display: flex;">
+              <div class="imgbox">
+                <el-image
+                  style="width: 100px; height: 100px"
+                  :src="url[0]"
+                  :preview-src-list="picList[0]"
+                />
+              </div>
+              <div class="imgbox">
+                <el-image
+                  style="width: 100px; height: 100px"
+                  :src="url[1]"
+                  :preview-src-list="picList[1]"
+                />
+              </div>
+            </div>
+          </div>
+          <div class="titlein">
+            <span class="titlename">发票附件</span>
+            <div style="display: flex;">
+              <div class="imgbox">
+                <el-image
+                  style="width: 100px; height: 100px"
+                  :src="url[1]"
+                  :preview-src-list="picList[1]"
+                />
+              </div>
+              <div class="imgbox">
+                <el-image
+                  style="width: 100px; height: 100px"
+                  :src="url[1]"
+                  :preview-src-list="picList[1]"
+                />
+              </div>
+            </div>
+          </div>
+
+        </div>
+      </el-col>
+      <el-col :xs="24" :sm="24" :md="14" :lg="14" :xl="12">
+        <div class="jas">
+          <div class="titlein jas">
+            <span class="titlename">贸易合同</span>
+            <div style="display: flex;">
+              <div class="imgbox">
+                <el-image
+                  style="width: 100px; height: 100px"
+                  :src="url[0]"
+                  :preview-src-list="picList[0]"
+                />
+              </div>
+              <div class="imgbox">
+                <el-image
+                  style="width: 100px; height: 100px"
+                  :src="url[1]"
+                  :preview-src-list="picList[1]"
+                />
+              </div>
+            </div>
+          </div>
+          <div class="yusa jas">
+            <!-- <el-tag type="warning" effect="dark">
               <span>合同状态:</span>
               <span style="color: #D05C39;">待审核</span>
             </el-tag> -->
-						<div class="boxas">
-							<span style="color: #fff;">合同状态:</span>
-							<span style="color: #D05C39;">{{contract.statusText}}</span>
-						</div>
-						<span class="aoiisp">审核结果:<p style="color: #D8AB5A;">审核通过</p></span>
-					</div>
-					<div class="yusa">
-						<el-col :xs="24" :sm="24" :md="14" :lg="14" :xl="10" class="jas">
-							<el-form ref="form" :model="feed" label-width="0px">
-								<span class="sah">审核反馈:</span>
-								<el-form-item label="">
-									<el-input type="textarea" v-model="feed.feedback"></el-input>
-								</el-form-item>
-
-							</el-form>
-						</el-col>
-						<el-col :xs="24" :sm="24" :md="14" :lg="14" :xl="14" class="jas">
-							<span class="sah">审核截图:</span>
-							<div style="display: flex;justify-content: flex-end;">
-								<div class="imgbox">
-									<el-image style="width: 100px; height: 100px" :src="url[0]"
-										:preview-src-list="picList">
-									</el-image>
-								</div>
-								<div class="imgbox">
-									<el-image style="width: 100px; height: 100px" :src="url[1]"
-										:preview-src-list="picList">
-									</el-image>
-								</div>
-							</div>
-						</el-col>
-					</div>
-					<div slot="" class="clearfix">
-						<el-button type="primary" style="float: right; margin-left: 10px;" @click="Exports">导出
-						</el-button>
-						<el-button type="danger" style="float: right; " @click="deletedContract">删除</el-button>
-						<el-button type="primary" style="float: right;margin-right: 10px; " @click="addNewBill"
-							v-if="checked==1">新增</el-button>
-						<el-button type="primary" style="float: right; " v-if="checked==0" @click="recoverContract">恢复
-						</el-button>
-						<el-button type="warning" style="float: right; " v-if="checked==0" @click="failed">审核失败
-						</el-button>
-						<el-button type="success" style="float: right; " v-if="checked==0" @click="success">审核成功
-						</el-button>
-					</div>
-				</div>
-			</el-col>
-		</el-card>
-
-		<el-card class="box-card">
-			<el-table v-loading="listLoading" :data="temporaryList" element-loading-text="Loading" border fit
-				@select="handleSelectionChange" highlight-current-row @select-all="handleAll">
-				<el-table-column align="center" label="" width="55" type="selection">
-
-				</el-table-column>
-				<el-table-column label="汇票名称" align="center" prop="name">
-
-				</el-table-column>
-				<el-table-column label="汇票编号" align="center" prop="draftNo">
-
-				</el-table-column>
-				<el-table-column label="承兑人" align="center" prop="acceptorName">
-
-				</el-table-column>
-				<el-table-column label="金额" align="center">
-					<template slot-scope="scope">
-						{{scope.row.money}}
-					</template>
-				</el-table-column>
-				<el-table-column label="服务费" align="center">
-					<template slot-scope="scope">
-						{{scope.row.serviceMoney}}
-					</template>
-				</el-table-column>
-				<el-table-column label="汇票状态" align="center" prop="draftStatusText">
-				</el-table-column>
-				<el-table-column label="审核状态" align="center">
-					<template slot-scope="scope">
-						{{scope.row.statusText}}
-					</template>
-				</el-table-column>
-				<el-table-column align="center" prop="created_at" label="操作" width="250">
-					<template slot-scope="scope">
-						<el-tag type="primary" style="cursor: pointer;margin-right: 15px;"
-							@click="tapDetail(scope.row.id)">查看详情</el-tag>
-						<el-tag type="success" style="margin-right: 15px;cursor: pointer;"
-							@click="recover(scope.row.id)">恢复</el-tag>
-						<el-tag type="danger" style="margin-right: 15px;cursor: pointer;"
-							@click="deleted(scope.row.id)">删除</el-tag>
-					</template>
-				</el-table-column>
-			</el-table>
-			
-			<div class="pagesip">
-				
-				<el-button type="primary" size="small"
-					style="background-color: #d8ab5a; border-color: #d8ab5a; margin: 0 20px" @click="jumpFirstPage">首页
-				</el-button>
-				<el-pagination background @current-change="handleCurrentChange" layout="prev, pager, next"
-					:total="list.length" :page-size="10" prev-text="上一页" next-text="下一页" :hide-on-single-page="false"
-					ref="pagination">
-				</el-pagination>
-				<el-button type="primary" size="small"
-					style="background-color: #d8ab5a; border-color: #d8ab5a; margin: 0 20px" @click="jumpLastPage">尾页
-				</el-button>
-				<el-button type="primary" size="small" @click="back">返回
-				</el-button>
-			</div>
-			
-		</el-card>
-	</div>
+            <div class="boxas">
+              <span style="color: #fff;">合同状态:</span>
+              <span style="color: #D05C39;">{{ contract.statusText }}</span>
+            </div>
+            <span class="aoiisp">审核结果:<p style="color: #D8AB5A;">审核通过</p></span>
+          </div>
+          <div class="yusa">
+            <el-col :xs="24" :sm="24" :md="14" :lg="14" :xl="10" class="jas">
+              <el-form ref="form" :model="feed" label-width="0px">
+                <span class="sah">审核反馈:</span>
+                <el-form-item label="">
+                  <el-input v-model="feed.feedback" type="textarea" />
+                </el-form-item>
+
+              </el-form>
+            </el-col>
+            <el-col :xs="24" :sm="24" :md="14" :lg="14" :xl="14" class="jas">
+              <span class="sah">审核截图:</span>
+              <div style="display: flex;justify-content: flex-end;">
+                <div class="imgbox">
+                  <el-image
+                    style="width: 100px; height: 100px"
+                    :src="url[0]"
+                    :preview-src-list="picList"
+                  />
+                </div>
+                <div class="imgbox">
+                  <el-image
+                    style="width: 100px; height: 100px"
+                    :src="url[1]"
+                    :preview-src-list="picList"
+                  />
+                </div>
+              </div>
+            </el-col>
+          </div>
+          <div slot="" class="clearfix">
+            <el-button type="primary" style="float: right; margin-left: 10px;" @click="Exports">导出
+            </el-button>
+            <el-button type="danger" style="float: right; " @click="deletedContract">删除</el-button>
+            <el-button
+              v-if="checked==1"
+              type="primary"
+              style="float: right;margin-right: 10px; "
+              @click="addNewBill"
+            >新增</el-button>
+            <el-button v-if="checked==0" type="primary" style="float: right; " @click="recoverContract">恢复
+            </el-button>
+            <el-button v-if="checked==0" type="warning" style="float: right; " @click="failed">审核失败
+            </el-button>
+            <el-button v-if="checked==0" type="success" style="float: right; " @click="success">审核成功
+            </el-button>
+          </div>
+        </div>
+      </el-col>
+    </el-card>
+
+    <el-card class="box-card">
+      <el-table
+        v-loading="listLoading"
+        :data="temporaryList"
+        element-loading-text="Loading"
+        border
+        fit
+        highlight-current-row
+        @select="handleSelectionChange"
+        @select-all="handleAll"
+      >
+        <el-table-column align="center" label="" width="55" type="selection" />
+        <el-table-column label="汇票名称" align="center" prop="name" />
+        <el-table-column label="汇票编号" align="center" prop="draftNo" />
+        <el-table-column label="承兑人" align="center" prop="acceptorName" />
+        <el-table-column label="金额" align="center">
+          <template slot-scope="scope">
+            {{ scope.row.money }}
+          </template>
+        </el-table-column>
+        <el-table-column label="服务费" align="center">
+          <template slot-scope="scope">
+            {{ scope.row.serviceMoney }}
+          </template>
+        </el-table-column>
+        <el-table-column label="汇票状态" align="center" prop="draftStatusText" />
+        <el-table-column label="审核状态" align="center">
+          <template slot-scope="scope">
+            {{ scope.row.statusText }}
+          </template>
+        </el-table-column>
+        <el-table-column align="center" prop="created_at" label="操作" width="250">
+          <template slot-scope="scope">
+            <el-tag
+              type="primary"
+              style="cursor: pointer;margin-right: 15px;"
+              @click="tapDetail(scope.row.id)"
+            >查看详情</el-tag>
+            <el-tag
+              type="success"
+              style="margin-right: 15px;cursor: pointer;"
+              @click="recover(scope.row.id)"
+            >恢复</el-tag>
+            <el-tag
+              type="danger"
+              style="margin-right: 15px;cursor: pointer;"
+              @click="deleted(scope.row.id)"
+            >删除</el-tag>
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <div class="pagesip">
+
+        <el-button
+          type="primary"
+          size="small"
+          style="background-color: #d8ab5a; border-color: #d8ab5a; margin: 0 20px"
+          @click="jumpFirstPage"
+        >首页
+        </el-button>
+        <el-pagination
+          background
+          layout="prev, pager, next"
+          :total="list.length"
+          :page-size="10"
+          prev-text="上一页"
+          ref="pagination"
+          next-text="下一页"
+          :hide-on-single-page="false"
+          @current-change="handleCurrentChange"
+        />
+        <el-button
+          type="primary"
+          size="small"
+          style="background-color: #d8ab5a; border-color: #d8ab5a; margin: 0 20px"
+          @click="jumpLastPage"
+        >尾页
+        </el-button>
+        <el-button type="primary" size="small" @click="back">返回
+        </el-button>
+      </div>
+
+    </el-card>
+  </div>
 
 </template>
 
 <script>
-	import {
-		getList
-	} from '@/api/table'
-	import {
-		dataConversionUtil
-	} from '../../utils/Excel.js'
-	export default {
-		data() {
-			return {
-				srcList: [],
-				temporaryList: [],
-				list: [],
-				contract: {},
-				currentPage: 1,
-				multipleSelection: [],
-				pagesize: 11,
-				listLoading: false,
-				checked: '',
-				form: '',
-				url: [],
-				picList: [],
-				feed: {
-					id: '',
-					feedback: '',
-					feedbackPicList: [],
-					approveStatus: ''
-				}
-			}
-		},
-		created() {},
-		mounted() {
-			this.checked = this.$store.state.user.checked
-			let id = this.$route.query.id
-			this.$request({
-				url: '/api/Contract/' + id,
-				method: 'get'
-			}).then((res) => {
-				this.contract = res.data
-				this.url = this.contract.invoicePicList
-				this.picList = this.contract.picList
-				this.list = res.data.contractDraft.result
-				this.feed.feedbackPicList = this.picList
-				this.feed.id = this.$route.query.id
-				this.getPageData()
-			})
-
-		},
-		methods: {
-			addNewBill() {
-				this.$router.push({
-					path: 'contracts/addnewbill'
-				})
-			},
-			tapDetail(id) {
-				this.$router.push({
-					path: 'contracts/billDetail',
-					query: {
-						id: id
-					}
-				})
-			},
-			handleAll(data) {
-				this.multipleSelection = data
-				console.log(this.multipleSelection)
-			},
-			handleSelectionChange(data) {
-				this.multipleSelection = data;
-				console.log(this.multipleSelection);
-			},
-			handleCurrentChange(val) {
-				this.currentPage = val;
-				this.getPageData();
-			},
-			jumpFirstPage() {
-				this.$refs.pagination.handleCurrentChange(1);
-				this.$emit("handleCurrentChange", 1);
-			},
-			jumpLastPage() {
-				let font = this.$refs.pagination;
-				let cpage = Math.ceil(font.total / font.pageSize);
-				font.handleCurrentChange(cpage);
-			},
-			getPageData() {
-				let start = (this.currentPage - 1) * this.pagesize;
-				let end = start + this.pagesize;
-				this.srcList = this.list.slice(start, end);
-				this.temporaryList = this.srcList;
-			},
-			Exports() {
-				// var tableHeader = [
-				// 	['序号', '汇票名称', '汇票编号', '承兑人', '金额', '服务费','汇票状态','审核状态'],
-				// ]
-				// var dataList = []
-				// this.multipleSelection.forEach((item, index) => {
-				// 	dataList.push([index + 1, item.name, item.draftNo, item.acceptorName,item.money,item.serviceMoney, item.draftStatusText, item
-				// 		.statusText
-				// 	]);
-				// })
-				// dataConversionUtil.dataToExcel('出票人列表', tableHeader, dataList)
-				// this.$message.success('导出成功!');
-			},
-			success() {
-				// this.feed.feedbackPicList=this.picList
-				// this.feed.id=this.$route.query.id
-				this.feed.approveStatus = 1
-				this.$request({
-					url: '/api/Contract/approveContract',
-					method: 'post',
-					data: this.feed,
-				}).then((res) => {
-					if (res.code == 200) {
-						this.$message({
-							type: 'success',
-							message: res.msg
-						})
-					} else {
-						this.$message({
-							type: 'danger',
-							message: '提交失败'
-						})
-					}
-				})
-			},
-			failed() {
-				this.feed.approveStatus = 2
-				this.$request({
-					url: '/api/Contract/approveContract',
-					method: 'post',
-					data: this.feed,
-				}).then((res) => {
-					if (res.code == 200) {
-						this.$message({
-							type: 'success',
-							message: res.msg
-						})
-					} else {
-						this.$message({
-							type: 'danger',
-							message: '提交失败'
-						})
-					}
-				})
-			},
-			recoverContract() {
-				let id = this.$route.query.id
-				this.$request({
-					url: '/api/Contract/manage',
-					method: 'post',
-					data: {
-						ids: [id],
-						operateType: 2
-					}
-				}).then((res) => {
-					if (res.code == 200) {
-						this.$message({
-							type: 'success',
-							message: res.msg
-						})
-					} else {
-						this.$message({
-							type: 'danger',
-							message: '提交失败'
-						})
-					}
-				})
-			},
-			deletedContract() {
-				let id = this.$route.query.id
-				this.$request({
-					url: '/api/Contract/manage',
-					method: 'post',
-					data: {
-						ids: [id],
-						operateType: 1
-					}
-				}).then((res) => {
-					if (res.code == 200) {
-						this.$message({
-							type: 'success',
-							message: res.msg
-						})
-					} else {
-						this.$message({
-							type: 'danger',
-							message: '提交失败'
-						})
-					}
-				})
-			},
-			recover(id) {
-				this.$request({
-					url: '/api/Contract/contractDraft/manager',
-					method: 'post',
-					data: {
-						ids: [id],
-						operateType: 2
-					}
-				}).then((res) => {
-					if (res.code == 200) {
-						this.$message({
-							type: 'success',
-							message: res.msg
-						})
-					} else {
-						this.$message({
-							type: 'danger',
-							message: '提交失败'
-						})
-					}
-				})
-			},
-			deleted(id) {
-				this.$request({
-					url: '/api/Contract/contractDraft/manager',
-					method: 'post',
-					data: {
-						ids: [id],
-						operateType: 1
-					}
-				}).then((res) => {
-					if (res.code == 200) {
-						this.$message({
-							type: 'success',
-							message: res.msg
-						})
-					} else {
-						this.$message({
-							type: 'danger',
-							message: '提交失败'
-						})
-					}
-				})
-			},
-			back() {
-				this.$router.go(-1)
-			}
-		}
-	}
+import {
+  getList
+} from '@/api/table'
+import {
+  dataConversionUtil
+} from '../../utils/Excel.js'
+export default {
+  data() {
+    return {
+      srcList: [],
+      temporaryList: [],
+      list: [],
+      contract: {},
+      currentPage: 1,
+      multipleSelection: [],
+      pagesize: 11,
+      listLoading: false,
+      checked: '',
+      form: '',
+      url: [],
+      picList: [],
+      feed: {
+        id: '',
+        feedback: '',
+        feedbackPicList: [],
+        approveStatus: ''
+      }
+    }
+  },
+  created() {},
+  mounted() {
+    this.checked = this.$store.state.user.checked
+    const id = this.$route.query.id
+    this.$request({
+      url: '/api/Contract/' + id,
+      method: 'get'
+    }).then((res) => {
+      this.contract = res.data
+      this.url = this.contract.invoicePicList
+      this.picList = this.contract.picList
+      this.list = res.data.contractDraft.result
+      this.feed.feedbackPicList = this.picList
+      this.feed.id = this.$route.query.id
+      this.getPageData()
+    })
+  },
+  methods: {
+    addNewBill() {
+      this.$router.push({
+        path: 'contracts/addnewbill'
+      })
+    },
+    tapDetail(id) {
+      this.$router.push({
+        path: 'contracts/billDetail',
+        query: {
+          id: id
+        }
+      })
+    },
+    handleAll(data) {
+      this.multipleSelection = data
+      console.log(this.multipleSelection)
+    },
+    handleSelectionChange(data) {
+      this.multipleSelection = data
+      console.log(this.multipleSelection)
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val
+      this.getPageData()
+    },
+    jumpFirstPage() {
+      this.$refs.pagination.handleCurrentChange(1)
+      this.$emit('handleCurrentChange', 1)
+    },
+    jumpLastPage() {
+      const font = this.$refs.pagination
+      const cpage = Math.ceil(font.total / font.pageSize)
+      font.handleCurrentChange(cpage)
+    },
+    getPageData() {
+      const start = (this.currentPage - 1) * this.pagesize
+      const end = start + this.pagesize
+      this.srcList = this.list.slice(start, end)
+      this.temporaryList = this.srcList
+    },
+    Exports() {
+      // var tableHeader = [
+      // 	['序号', '汇票名称', '汇票编号', '承兑人', '金额', '服务费','汇票状态','审核状态'],
+      // ]
+      // var dataList = []
+      // this.multipleSelection.forEach((item, index) => {
+      // 	dataList.push([index + 1, item.name, item.draftNo, item.acceptorName,item.money,item.serviceMoney, item.draftStatusText, item
+      // 		.statusText
+      // 	]);
+      // })
+      // dataConversionUtil.dataToExcel('出票人列表', tableHeader, dataList)
+      // this.$message.success('导出成功!');
+    },
+    success() {
+      // this.feed.feedbackPicList=this.picList
+      // this.feed.id=this.$route.query.id
+      this.feed.approveStatus = 1
+      this.$request({
+        url: '/api/Contract/approveContract',
+        method: 'post',
+        data: this.feed
+      }).then((res) => {
+        if (res.code == 200) {
+          this.$message({
+            type: 'success',
+            message: res.msg
+          })
+        } else {
+          this.$message({
+            type: 'danger',
+            message: '提交失败'
+          })
+        }
+      })
+    },
+    failed() {
+      this.feed.approveStatus = 2
+      this.$request({
+        url: '/api/Contract/approveContract',
+        method: 'post',
+        data: this.feed
+      }).then((res) => {
+        if (res.code == 200) {
+          this.$message({
+            type: 'success',
+            message: res.msg
+          })
+        } else {
+          this.$message({
+            type: 'danger',
+            message: '提交失败'
+          })
+        }
+      })
+    },
+    recoverContract() {
+      const id = this.$route.query.id
+      this.$request({
+        url: '/api/Contract/manage',
+        method: 'post',
+        data: {
+          ids: [id],
+          operateType: 2
+        }
+      }).then((res) => {
+        if (res.code == 200) {
+          this.$message({
+            type: 'success',
+            message: res.msg
+          })
+        } else {
+          this.$message({
+            type: 'danger',
+            message: '提交失败'
+          })
+        }
+      })
+    },
+    deletedContract() {
+      const id = this.$route.query.id
+      this.$request({
+        url: '/api/Contract/manage',
+        method: 'post',
+        data: {
+          ids: [id],
+          operateType: 1
+        }
+      }).then((res) => {
+        if (res.code == 200) {
+          this.$message({
+            type: 'success',
+            message: res.msg
+          })
+        } else {
+          this.$message({
+            type: 'danger',
+            message: '提交失败'
+          })
+        }
+      })
+    },
+    recover(id) {
+      this.$request({
+        url: '/api/Contract/contractDraft/manager',
+        method: 'post',
+        data: {
+          ids: [id],
+          operateType: 2
+        }
+      }).then((res) => {
+        if (res.code == 200) {
+          this.$message({
+            type: 'success',
+            message: res.msg
+          })
+        } else {
+          this.$message({
+            type: 'danger',
+            message: '提交失败'
+          })
+        }
+      })
+    },
+    deleted(id) {
+      this.$request({
+        url: '/api/Contract/contractDraft/manager',
+        method: 'post',
+        data: {
+          ids: [id],
+          operateType: 1
+        }
+      }).then((res) => {
+        if (res.code == 200) {
+          this.$message({
+            type: 'success',
+            message: res.msg
+          })
+        } else {
+          this.$message({
+            type: 'danger',
+            message: '提交失败'
+          })
+        }
+      })
+    },
+    back() {
+      this.$router.go(-1)
+    }
+  }
+}
 </script>
 
 <style lang="scss">
@@ -442,8 +484,6 @@
 		justify-content: space-between;
 		margin: 20px 0;
 
-
-
 		.titlename {
 			color: #BEBDBB;
 		}
@@ -456,7 +496,6 @@
 	.yusa {
 		display: flex;
 
-
 	}
 
 	.jas {

+ 137 - 0
src/views/contracts/list.vue

xqd
@@ -0,0 +1,137 @@
+<template>
+  <div class="app-container">
+    <!-- 搜索表单 -->
+    <div class="result-filter">
+      <ListFilterForm @filter="onFilter" />
+    </div>
+    <!-- 表格内容 -->
+    <div class="result-table">
+      <!-- 表格按钮 -->
+      <div class="result-table-btns">
+        <el-button
+          type="primary"
+          @click="onAdd"
+        >新增</el-button>
+      </div>
+      <!-- 表格 -->
+      <ListTable
+        :loading="loading"
+        :data="tableData"
+        :pagination="pagination"
+        :selected-rows.sync="selectedRows"
+        @filter="onFilter"
+        @onShow="onShow"
+        @onEdit="onEdit"
+        @onDelete="onDelete"
+        @onAudit="onAudit"
+      />
+    </div>
+  </div>
+</template>
+
+<script>
+import { contractsPageApi, contractsManageApi } from '@/api/contracts'
+import ListTable from './components/ListTable.vue'
+import ListFilterForm from './components/ListFilterForm.vue'
+export default {
+  components: {
+    ListTable,
+    ListFilterForm
+  },
+  data() {
+    return {
+      tableData: [],
+      pagination: {
+        pageIndex: 0,
+        total: 0,
+        pageSize: 10
+      },
+      filter: {
+        pageIndex: 1,
+        pageSize: 10
+      },
+      selectedRows: [],
+      loading: false
+    }
+  },
+  mounted() {
+    this.loadData()
+  },
+  methods: {
+    onFilter(filter = {}) {
+      this.loadData(filter)
+    },
+    loadData(filtter = {}) {
+      const params = {
+        ...this.filter,
+        ...filtter
+      }
+      this.loading = true
+      contractsPageApi(params).then(res => {
+        const { data } = res
+        this.filter = params
+        this.tableData = data.result
+        this.pagination = {
+          ...this.pagination,
+          pageIndex: params.pageIndex,
+          pageSize: params.pageSize,
+          total: data.total
+        }
+        this.loading = false
+      }).catch(err => {
+        this.loading = false
+        console.log(err)
+      })
+    },
+    // 添加
+    onAdd() {
+      console.log('onAdd')
+    },
+    // 详情
+    onShow(row) {
+      console.log(row)
+    },
+    // 修改
+    onEdit(row) {
+      console.log(row)
+    },
+    // 删除
+    onDelete(row) {
+      console.log(row)
+    },
+    // 审核
+    onAudit(row) {
+      console.log(row)
+      const params = {
+        id: [row.id],
+        operateType: 3
+      }
+      this.loading = true
+      contractsManageApi(params).then(res => {
+        this.loading = false
+        this.$message({
+          type: 'success',
+          message: res.msg
+        })
+      }).catch(err => {
+        this.loading = false
+        console.log(err)
+        this.$message({
+          type: 'danger',
+          message: err.msg
+        })
+      })
+    }
+  }
+}
+</script>
+
+<style scoped>
+.result-table{
+  background-color: #ffffff;
+}
+.result-table-btns{
+  text-align: right;
+  margin-bottom: 15px;
+}
+</style>

+ 148 - 164
src/views/contracts/new_file.vue

xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd
@@ -8,9 +8,9 @@
             v-model="form.name"
             placeholder="请输入合同名称"
             style="width: 500px"
-            @input="getContractNo"
             clearable
-          ></el-input>
+            @input="getContractNo"
+          />
         </div>
         <div>
           <p>合同编号</p>
@@ -19,7 +19,7 @@
             placeholder="请输入合同编号"
             style="width: 500px"
             disabled
-          ></el-input>
+          />
         </div>
       </div>
 
@@ -35,13 +35,13 @@
           :on-change="handlepics"
           :file-list="form.pics"
         >
-          <i slot="default" class="el-icon-plus"></i>
+          <i slot="default" class="el-icon-plus" />
           <div slot="file" slot-scope="{ file }">
             <img
               class="el-upload-list__item-thumbnail"
               :src="file.url"
               alt=""
-            />
+            >
             <!-- <span class="el-upload-list__item-actions">
 							<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
 								<i class="el-icon-zoom-in"></i>
@@ -57,7 +57,7 @@
           </div>
         </el-upload>
         <el-dialog :visible.sync="dialogVisible">
-          <img width="100%" :src="form.pics" alt="" />
+          <img width="100%" :src="form.pics" alt="">
         </el-dialog>
       </div>
       <div class="titlesa">
@@ -72,13 +72,13 @@
           :on-change="handleinvoicePics"
           :file-list="form.invoicePics"
         >
-          <i slot="default" class="el-icon-plus"></i>
+          <i slot="default" class="el-icon-plus" />
           <div slot="file" slot-scope="{ file }">
             <img
               class="el-upload-list__item-thumbnail"
               :src="file.url"
               alt=""
-            />
+            >
             <!-- <span class="el-upload-list__item-actions">
 							<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
 								<i class="el-icon-zoom-in"></i>
@@ -93,7 +93,7 @@
           </div>
         </el-upload>
         <el-dialog :visible.sync="dialogVisible">
-          <img width="100%" :src="form.invoicePics" alt="" />
+          <img width="100%" :src="form.invoicePics" alt="">
         </el-dialog>
       </div>
       <div class="titlesa">
@@ -108,44 +108,44 @@
           :on-change="handletradePics"
           :file-list="form.tradePics"
         >
-          <i slot="default" class="el-icon-plus"></i>
+          <i slot="default" class="el-icon-plus" />
           <div slot="file" slot-scope="{ file }">
             <img
               class="el-upload-list__item-thumbnail"
               :src="file.url"
               alt=""
-            />
+            >
             <span class="el-upload-list__item-actions">
               <span
                 class="el-upload-list__item-preview"
                 @click="handlePictureCardPreview(file)"
               >
-                <i class="el-icon-zoom-in"></i>
+                <i class="el-icon-zoom-in" />
               </span>
               <span
                 v-if="!disabled"
                 class="el-upload-list__item-delete"
                 @click="handleDownload(file)"
               >
-                <i class="el-icon-download"></i>
+                <i class="el-icon-download" />
               </span>
               <span
                 v-if="!disabled"
                 class="el-upload-list__item-delete"
                 @click="handleRemove(file)"
               >
-                <i class="el-icon-delete"></i>
+                <i class="el-icon-delete" />
               </span>
             </span>
           </div>
         </el-upload>
         <el-dialog :visible.sync="dialogVisible">
-          <img width="100%" :src="form.tradePics" alt="" />
+          <img width="100%" :src="form.tradePics" alt="">
         </el-dialog>
       </div>
     </el-card>
 
-    <div class="form" v-for="(item, index) in form.contractDrafts">
+    <div v-for="(item, index) in form.contractDrafts" class="form">
       <el-button type="primary" @click="deletedraft(index)">删除汇票</el-button>
       <el-form ref="form" :model="item" label-width="90px">
         <el-form-item label="汇票名称">
@@ -166,8 +166,7 @@
               changeE;
               xpectDiscountDate($event, index);
             "
-          >
-          </el-date-picker>
+          />
         </el-form-item>
         <el-form-item label="出票日期">
           <el-date-picker
@@ -175,8 +174,7 @@
             type="date"
             placeholder="选择日期"
             class="ipwidth"
-          >
-          </el-date-picker>
+          />
         </el-form-item>
         <el-form-item label="承兑日期">
           <el-date-picker
@@ -184,16 +182,14 @@
             type="date"
             placeholder="选择日期"
             @change="changeIssueDate($event, index)"
-          >
-          </el-date-picker>
+          />
         </el-form-item>
         <el-form-item label="到期日期">
           <el-date-picker
             v-model="item.expireDate"
             type="date"
             placeholder="选择日期"
-          >
-          </el-date-picker>
+          />
         </el-form-item>
       </el-form>
       <el-form ref="form" :model="form" label-width="100px">
@@ -244,27 +240,25 @@
           <el-select v-model="form.drawersName" placeholder="请选择出票人">
             <el-option
               label="新增出票人"
-              @click.native="addDrawer"
               value=""
               style="color: darkorange"
-            >
-            </el-option>
-            <el-option
+              @click.native="addDrawer"
+            />
+            <!-- <el-option
               v-for="item in drawersName"
               :label="item"
               :value="item"
-            ></el-option>
+            /> -->
           </el-select>
         </el-form-item>
         <el-form-item label="承兑人">
           <el-select v-model="form.acceptorName" placeholder="请选择承兑人">
-            <el-option
+            <!-- <el-option
               v-for="val in acceptorName"
               :label="val"
               :value="val"
               @click.native="getRate"
-            >
-            </el-option>
+            /> -->
           </el-select>
         </el-form-item>
 
@@ -292,9 +286,9 @@
           <el-col style="margin: 0 auto">
             <div class="titlesa">
               <span>附件</span>
-              <span style="color: #d05c39"
-                >*支持上传pdf、jpg/jpeg、png格式</span
-              >
+              <span
+                style="color: #d05c39"
+              >*支持上传pdf、jpg/jpeg、png格式</span>
             </div>
             <div>
               <el-upload
@@ -307,10 +301,10 @@
                 :before-upload="beforeUpload"
                 :on-change="handlepicUrls"
               >
-                <i class="el-icon-plus"></i>
+                <i class="el-icon-plus" />
               </el-upload>
               <el-dialog :visible.sync="dialogVisible">
-                <img width="100%" :src="form.contractDrafts.picUrls" alt="" />
+                <img width="100%" :src="form.contractDrafts.picUrls" alt="">
               </el-dialog>
             </div>
           </el-col>
@@ -327,7 +321,7 @@
           type="warning"
           style="width: 180px; height: 45px; font-size: 16px"
           @click="onSubmit"
-          >确认上传
+        >确认上传
         </el-button>
       </div>
     </div>
@@ -348,135 +342,127 @@ export default {
         acceptorName: [],
         // 出票人列表
         drawersName: [],
-        contractNo: "",
+        contractNo: '',
         supplierId: 2,
-        name: "",
-        invoicePics: [
-          // "https:\/\/easygolf.oss-ap-southeast-6.aliyuncs.com\/golf\/2022-03\/18\/88df7532ff7de229b617.jpg",
-          // "https:\/\/easygolf.oss-ap-southeast-6.aliyuncs.com\/golf\/2022-03\/18\/ab37cbd176e12cef2f82.jpg"
-        ],
-        pics: [
-          // "https:\/\/easygolf.oss-ap-southeast-6.aliyuncs.com\/golf\/2022-03\/18\/88df7532ff7de229b617.jpg",
-          // "https:\/\/easygolf.oss-ap-southeast-6.aliyuncs.com\/golf\/2022-03\/18\/ab37cbd176e12cef2f82.jpg"
-        ],
-        tradePics: [
-          // "https:\/\/easygolf.oss-ap-southeast-6.aliyuncs.com\/golf\/2022-03\/18\/88df7532ff7de229b617.jpg"
-        ],
+        name: '',
+        invoicePics: [],
+        pics: [],
+        tradePics: [],
         contractDrafts: [
           {
-            name: "",
-            draftNo: "HP20220709-0958-02356",
-            acceptorId: "",
-            drawersId: "",
-            money: "",
-            acceptDate: "",
-            loanLimit: "",
-            serviceRate: "",
-            serviceMoney: "",
-            interestRate: "",
-            interest: "",
+            name: '',
+            draftNo: 'HP20220709-0958-02356',
+            acceptorId: '',
+            drawersId: '',
+            money: '',
+            acceptDate: '',
+            loanLimit: '',
+            serviceRate: '',
+            serviceMoney: '',
+            interestRate: '',
+            interest: '',
             picUrls: [
-              "https://easygolf.oss-ap-southeast-6.aliyuncs.com/golf/2022-03/18/88df7532ff7de229b617.jpg",
+              'https://easygolf.oss-ap-southeast-6.aliyuncs.com/golf/2022-03/18/88df7532ff7de229b617.jpg'
             ],
-            expectDiscountDate: "",
-            issueDate: "",
-            expireDate: "",
-          },
-        ],
+            expectDiscountDate: '',
+            issueDate: '',
+            expireDate: ''
+          }
+        ]
       },
       pickerOptions: {
         disabledDate(time) {
-          return time.getTime() > Date.now();
+          return time.getTime() > Date.now()
         },
         shortcuts: [
           {
-            text: "今天",
+            text: '今天',
             onClick(picker) {
-              picker.$emit("pick", new Date());
-            },
+              picker.$emit('pick', new Date())
+            }
           },
           {
-            text: "昨天",
+            text: '昨天',
             onClick(picker) {
-              const date = new Date();
-              date.setTime(date.getTime() - 3600 * 1000 * 24);
-              picker.$emit("pick", date);
-            },
+              const date = new Date()
+              date.setTime(date.getTime() - 3600 * 1000 * 24)
+              picker.$emit('pick', date)
+            }
           },
           {
-            text: "一周前",
+            text: '一周前',
             onClick(picker) {
-              const date = new Date();
-              date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
-              picker.$emit("pick", date);
-            },
-          },
-        ],
-      },
-    };
+              const date = new Date()
+              date.setTime(date.getTime() - 3600 * 1000 * 24 * 7)
+              picker.$emit('pick', date)
+            }
+          }
+        ]
+      }
+    }
   },
 
   mounted() {
     this.$request({
-      url: "/api/Contract/search",
-      method: "post",
+      url: '/api/Contract/search',
+      method: 'post',
       data: {
         pageIndex: 1,
-        pageSize: 100,
-      },
+        pageSize: 100
+      }
     }).then((res) => {
-      this.contractList = res.data.result;
-    });
+      this.contractList = res.data.result
+    })
     this.$request({
-      url: "/api/Acceptor/search",
-      method: "post",
+      url: '/api/Acceptor/search',
+      method: 'post',
       data: {
         pageIndex: 1,
-        pageSize: 100,
-      },
+        pageSize: 100
+      }
     }).then((res) => {
-      this.acceptorList = res.data.result;
-      this.acceptorName = Array.from(this.acceptorList, ({ name }) => name);
-      console.log(this.acceptorName);
+      this.acceptorList = res.data.result
+      this.acceptorName = Array.from(this.acceptorList, ({ name }) => name)
+      console.log(this.acceptorName)
       // 去除重复的承兑人
       //  for (var i = 0; i < this.acceptorName.length; i++) {    // 首次遍历数组
       //         for (var j = i + 1; j < this.acceptorName.length; j++) {   // 再次遍历数组
-      //             if (this.acceptorName[i] == this.acceptorName[j]) {          // 判断连个值是否相等
+      //             if (this.acceptorName[i] === this.acceptorName[j]) {          // 判断连个值是否相等
       //                 this.acceptorName.splice(j, 1);           // 相等删除后者
       //                 j--;
       //             }
       //         }
       //     }
       // console.log(this.acceptorName)
-    });
+    })
     this.$request({
-      url: "/api/Drawer/search",
-      method: "post",
+      url: '/api/Drawer/search',
+      method: 'post',
       data: {
         pageIndex: 1,
-        pageSize: 100,
-      },
+        pageSize: 100
+      }
     }).then((res) => {
-      this.drawersList = res.data.result;
-      this.drawersName = Array.from(this.drawersList, ({ name }) => name);
+      this.drawersList = res.data.result
+      this.drawersName = Array.from(this.drawersList, ({ name }) => name)
       // 去除重复的出票人
       for (var i = 0; i < this.drawersName.length; i++) {
         // 首次遍历数组
         for (var j = i + 1; j < this.drawersName.length; j++) {
           // 再次遍历数组
-          if (this.drawersName[i] == this.drawersName[j]) {
+          if (this.drawersName[i] === this.drawersName[j]) {
             // 判断连个值是否相等
-            this.drawersName.splice(j, 1); // 相等删除后者
-            j--;
+            this.drawersName.splice(j, 1) // 相等删除后者
+            j--
           }
         }
       }
-      console.log(this.drawersName);
-    });
+      console.log(this.drawersName)
+    })
   },
   methods: {
     onSubmit() {
-      console.log(this.form);
+      console.log(this.form)
       // this.$request({
       // 	url: '/api/Contract',
       // 	method: 'post',
@@ -490,101 +476,99 @@ export default {
       // })
     },
     handlepics(file, fileList) {
-      console.log(file, fileList);
+      console.log(file, fileList)
       // this.form.pics.push(file)
-      this.form.pics = fileList;
-      console.log(this.form.pics);
+      this.form.pics = fileList
+      console.log(this.form.pics)
     },
     handleinvoicePics(file, fileList) {
       // this.form.invoicePics.push(file)
-      this.form.invoicePics = fileList;
-      console.log(this.form.invoicePics);
+      this.form.invoicePics = fileList
+      console.log(this.form.invoicePics)
     },
     handletradePics(file, fileList) {
       // this.form.tradePics.push(file)
-      this.form.tradePics = fileList;
-      console.log(this.form.tradePics);
+      this.form.tradePics = fileList
+      console.log(this.form.tradePics)
     },
     handlepicUrls(file, fileList, index) {
       // this.form.contractDrafts[0].picUrls.push(file)
-      console.log(this.form.contractDrafts[index].picUrls);
+      console.log(this.form.contractDrafts[index].picUrls)
     },
     getContractNo() {
-      let temporaryList = this.contractList.filter(
-        (item) => item.name == this.form.name
-      );
-      if (this.form.name == "" || temporaryList == "") {
-        this.form.contractNo = "";
+      const temporaryList = this.contractList.filter(
+        (item) => item.name === this.form.name
+      )
+      if (this.form.name === '' || temporaryList === '') {
+        this.form.contractNo = ''
       } else {
-        this.form.contractNo = temporaryList[0].contractNo;
+        this.form.contractNo = temporaryList[0].contractNo
       }
     },
     getRate() {
-      let list = this.acceptorList.filter(
-        (item) => item.name == this.form.acceptorName
-      );
-      this.form.contractDrafts[0].interestRate = list[0].interest;
-      this.form.contractDrafts[0].serviceRate = list[0].serviceRate;
+      const list = this.acceptorList.filter(
+        (item) => item.name === this.form.acceptorName
+      )
+      this.form.contractDrafts[0].interestRate = list[0].interest
+      this.form.contractDrafts[0].serviceRate = list[0].serviceRate
     },
     computed() {
-      console.log(this.form.contractDrafts[0].money);
+      console.log(this.form.contractDrafts[0].money)
     },
     addDrawer() {
       this.$router.push({
-        path: "/form/addTicketdrawer",
-      });
+        path: '/form/addTicketdrawer'
+      })
     },
     adddraft() {
-      console.log(this.form.contractDrafts[0].money);
       this.form.contractDrafts.push({
-        name: "",
-        draftNo: "HP20220709-0958-02356",
-        acceptorId: "",
-        drawersId: "",
-        money: "",
-        acceptDate: "",
-        loanLimit: "",
-        serviceRate: "",
-        serviceMoney: "",
-        interestRate: "",
-        interest: "",
+        name: '',
+        draftNo: 'HP20220709-0958-02356',
+        acceptorId: '',
+        drawersId: '',
+        money: '',
+        acceptDate: '',
+        loanLimit: '',
+        serviceRate: '',
+        serviceMoney: '',
+        interestRate: '',
+        interest: '',
         picUrls: [
-          "https://easygolf.oss-ap-southeast-6.aliyuncs.com/golf/2022-03/18/88df7532ff7de229b617.jpg",
+          'https://easygolf.oss-ap-southeast-6.aliyuncs.com/golf/2022-03/18/88df7532ff7de229b617.jpg'
         ],
-        expectDiscountDate: "",
-        issueDate: "",
-        expireDate: "",
-      });
+        expectDiscountDate: '',
+        issueDate: '',
+        expireDate: ''
+      })
     },
 
     deletedraft(index) {
-      const contractDraftsLength = this.form.contractDrafts.length;
+      const contractDraftsLength = this.form.contractDrafts.length
       if (contractDraftsLength > 1) {
-        this.form.contractDrafts.splice(index, 1);
+        this.form.contractDrafts.splice(index, 1)
       } else {
-        this.$message.error("至少一个");
+        this.$message.error('至少一个')
       }
-      console.log(this.form.contractDrafts[0].money);
+      console.log(this.form.contractDrafts[0].money)
     },
     // 服务费率
     inputServiceRate(val, index) {
-      console.log(val, index);
-    //   this.form.contractDrafts[index].money = val;
+      console.log(val, index)
     },
     // 利率
     inputInterestRate(val, index) {
-      console.log(val, index);
+      console.log(val, index)
     },
     // 预计贴现日
     changeExpectDiscountDate(val, index) {
-      console.log(val, index);
+      console.log(val, index)
     },
     // 承兑日期
     changeIssueDate(val, index) {
-      console.log(val, index);
-    },
-  },
-};
+      console.log(val, index)
+    }
+  }
+}
 </script>
 
 <style lang="scss">

+ 0 - 7
src/views/login/index.vue

xqd xqd
@@ -80,10 +80,6 @@
 </template>
 
 <script>
-let that
-import {
-  validUsername
-} from '@/utils/validate'
 import logo from '/src/assets/img/logo.png'
 export default {
   name: 'Login',
@@ -143,9 +139,6 @@ export default {
       immediate: true
     }
   },
-  created() {
-    that = this
-  },
   mounted() {
     if (this.$route.query.checked) {
       this.checked = this.$route.query.checked

+ 350 - 341
src/views/management/index.vue

xqd
@@ -1,349 +1,358 @@
 <template>
-	<div class="app-container">
-		<el-row type="flex" justify="space-between" style="margin-bottom:20px ;">
-				<div class="grid-content bg-purple" >
-					<el-input placeholder="业务管理员名称搜索" v-model="input4" style="width: 100%;">
-						<i slot="prefix" class="el-input__icon el-icon-search"></i>
-					</el-input>
-				</div>
-				<div class="grid-content bg-purple">
-					<el-dropdown @command="handleCommand">
-						<div class="pulldown">
-							<span class="el-dropdown-link" v-if="!status">
-								业务管理员状态筛选
-							</span>
-							<span class="el-dropdown-link" v-if="status">
-								{{status}}
-							</span>
-							<i class="el-icon-arrow-down el-icon--right"></i>
-						</div>
-						<el-dropdown-menu slot="dropdown">
-							<el-dropdown-item command="未通过">未通过</el-dropdown-item>
-							<el-dropdown-item command="待审核">待审核</el-dropdown-item>
-						</el-dropdown-menu>
-					</el-dropdown>
-				</div>
-				<div class="grid-content bg-purple">
-					<el-dropdown @command="handlehpCommand()">
-						<div class="pulldown">
-							<span class="el-dropdown-link" v-if="!hpstatus">
-								审核状态筛选
-							</span>
-							<span class="el-dropdown-link" v-if="hpstatus">
-								{{hpstatus}}
-							</span>
-							<i class="el-icon-arrow-down el-icon--right"></i>
-						</div>
-						<el-dropdown-menu slot="dropdown">
-							<el-dropdown-item command="成功">成功</el-dropdown-item>
-							<el-dropdown-item command="失败">失败</el-dropdown-item>
-						</el-dropdown-menu>
-					</el-dropdown>
-				</div>
-			<div class="grid-content bg-purple" style="display: flex;justify-content: flex-end;margin-left: 10px;">
-				<el-button type="success" @click="success">审核成功</el-button>
-				<el-button type="danger" @click="failed">审核失败</el-button>
-				<el-button type="primary" @click="recover">恢复</el-button>
-				<el-button type="warning" @click="deleted">删除</el-button>
-				<el-button type="primary">批量导出</el-button>
-			</div>
-		</el-row>
-		<el-table v-loading="listLoading" :data="srcList" element-loading-text="Loading" border fit
-			highlight-current-row @selection-change="handleSelectionChange" @select-all="handleAll"> 
-			<el-table-column align="center" label="" width="55" type="selection">
-			</el-table-column>
-			<el-table-column label="业务管理员姓名" align="center" width="180" prop="realName">
-				
-			</el-table-column>
-			<el-table-column label="账号" align="center" prop="account">
-				
-			</el-table-column>
-			<el-table-column label="联系电话" width="180" align="center" prop="mobile">
-				
-			</el-table-column>
-			<el-table-column label="业务管理员状态"  align="center" prop="statusText">
-				
-			</el-table-column>
-			<el-table-column label="审核状态"  align="center" prop="approveStatusText">
-				
-			</el-table-column>
-			<el-table-column label="时间" width="180" align="center">
-				
-			</el-table-column>
-			<el-table-column align="center" prop="created_at" label="操作" width="200">
-				<template slot-scope="scope">
-					<el-tag type="primary" style="cursor: pointer; margin:0 5px;" @click="">编辑</el-tag>
-					<el-tag type="success" style="cursor: pointer; margin:0 5px;" @click="Srecover(scope.row.id)">恢复</el-tag>
-					<el-tag type="danger" style="cursor: pointer; margin:0 5px;" @click="Sdeleted(scope.row.id)">删除</el-tag>
-				</template>
-			</el-table-column>
-		</el-table>
-		<div class="pagesip">
-			<el-button type="primary" size="small"
-				style="background-color:#D8AB5A ;border-color:#D8AB5A ; margin: 0 20px;" @click="jumpFirstPage">首页
-			</el-button>
-			<el-pagination background @current-change="handleCurrentChange" layout="prev, pager, next"  :total="list.length" :page-size="11" prev-text="上一页" next-text="下一页"
-				:hide-on-single-page="false" ref="pagination">
-			</el-pagination>
-			<el-button type="primary" size="small"
-				style="background-color:#D8AB5A ;border-color:#D8AB5A ;margin: 0 20px;" @click="jumpLastPage">尾页
-			</el-button>
-		</div>
-	</div>
+  <div class="app-container">
+    <el-row type="flex" justify="space-between" style="margin-bottom:20px ;">
+      <div class="grid-content bg-purple">
+        <el-input v-model="input4" placeholder="业务管理员名称搜索" style="width: 100%;">
+          <i slot="prefix" class="el-input__icon el-icon-search" />
+        </el-input>
+      </div>
+      <div class="grid-content bg-purple">
+        <el-dropdown @command="handleCommand">
+          <div class="pulldown">
+            <span v-if="!status" class="el-dropdown-link">
+              业务管理员状态筛选
+            </span>
+            <span v-if="status" class="el-dropdown-link">
+              {{ status }}
+            </span>
+            <i class="el-icon-arrow-down el-icon--right" />
+          </div>
+          <el-dropdown-menu slot="dropdown">
+            <el-dropdown-item command="未通过">未通过</el-dropdown-item>
+            <el-dropdown-item command="待审核">待审核</el-dropdown-item>
+          </el-dropdown-menu>
+        </el-dropdown>
+      </div>
+      <div class="grid-content bg-purple">
+        <el-dropdown @command="handlehpCommand()">
+          <div class="pulldown">
+            <span v-if="!hpstatus" class="el-dropdown-link">
+              审核状态筛选
+            </span>
+            <span v-if="hpstatus" class="el-dropdown-link">
+              {{ hpstatus }}
+            </span>
+            <i class="el-icon-arrow-down el-icon--right" />
+          </div>
+          <el-dropdown-menu slot="dropdown">
+            <el-dropdown-item command="成功">成功</el-dropdown-item>
+            <el-dropdown-item command="失败">失败</el-dropdown-item>
+          </el-dropdown-menu>
+        </el-dropdown>
+      </div>
+      <div class="grid-content bg-purple" style="display: flex;justify-content: flex-end;margin-left: 10px;">
+        <el-button type="success" @click="success">审核成功</el-button>
+        <el-button type="danger" @click="failed">审核失败</el-button>
+        <el-button type="primary" @click="recover">恢复</el-button>
+        <el-button type="warning" @click="deleted">删除</el-button>
+        <el-button type="primary">批量导出</el-button>
+      </div>
+    </el-row>
+    <el-table
+      v-loading="listLoading"
+      :data="srcList"
+      element-loading-text="Loading"
+      border
+      fit
+      highlight-current-row
+      @selection-change="handleSelectionChange"
+      @select-all="handleAll"
+    >
+      <el-table-column align="center" label="" width="55" type="selection" />
+      <el-table-column label="业务管理员姓名" align="center" width="180" prop="realName" />
+      <el-table-column label="账号" align="center" prop="account" />
+      <el-table-column label="联系电话" width="180" align="center" prop="mobile" />
+      <el-table-column label="业务管理员状态" align="center" prop="statusText" />
+      <el-table-column label="审核状态" align="center" prop="approveStatusText" />
+      <el-table-column label="时间" width="180" align="center" />
+      <el-table-column align="center" prop="created_at" label="操作" width="200">
+        <template slot-scope="scope">
+          <el-tag type="primary" style="cursor: pointer; margin:0 5px;" @click="">编辑</el-tag>
+          <el-tag type="success" style="cursor: pointer; margin:0 5px;" @click="Srecover(scope.row.id)">恢复</el-tag>
+          <el-tag type="danger" style="cursor: pointer; margin:0 5px;" @click="Sdeleted(scope.row.id)">删除</el-tag>
+        </template>
+      </el-table-column>
+    </el-table>
+    <div class="pagesip">
+      <el-button
+        type="primary"
+        size="small"
+        style="background-color:#D8AB5A ;border-color:#D8AB5A ; margin: 0 20px;"
+        @click="jumpFirstPage"
+      >首页
+      </el-button>
+      <el-pagination
+        background
+        layout="prev, pager, next"
+        :total="list.length"
+        :page-size="11"
+        prev-text="上一页"
+        next-text="下一页"
+        @current-change="handleCurrentChange"
+        :hide-on-single-page="false"
+        ref="pagination"
+      />
+      <el-button
+        type="primary"
+        size="small"
+        style="background-color:#D8AB5A ;border-color:#D8AB5A ;margin: 0 20px;"
+        @click="jumpLastPage"
+      >尾页
+      </el-button>
+    </div>
+  </div>
 </template>
 
 <script>
-	import {
-		getList
-	} from '@/api/table'
+import {
+  getList
+} from '@/api/table'
 
-	export default {
-		filters: {
-			statusFilter(status) {
-				const statusMap = {
-					published: 'success',
-					draft: 'gray',
-					deleted: 'danger'
-				}
-				return statusMap[status]
-			}
-		},
-		data() {
-			return {
-				srcList: [],
-				list: [],
-				listLoading: false,
-				status: '',
-				currentPage: 1,
-				pagesize: 11,
-				hpstatus: '',
-				input4: '',
-				checked: false,
-				pickerOptions: {
-					shortcuts: [{
-						text: '最近一周',
-						onClick(picker) {
-							const end = new Date();
-							const start = new Date();
-							start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
-							picker.$emit('pick', [start, end]);
-						}
-					}, {
-						text: '最近一个月',
-						onClick(picker) {
-							const end = new Date();
-							const start = new Date();
-							start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
-							picker.$emit('pick', [start, end]);
-						}
-					}, {
-						text: '最近三个月',
-						onClick(picker) {
-							const end = new Date();
-							const start = new Date();
-							start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
-							picker.$emit('pick', [start, end]);
-						}
-					}]
-				},
-				value1: '',
-				value2: ''
-			}
-		},
-		created() {
-		},
-		mounted() {
-			this.$request({
-				url: '/api/Account/search',
-				method: 'post',
-				data:{
-					pageIndex:0,
-					pageSize: 30,
-				}
-			}).then((res) => {
-				this.list=res.data.result
-				console.log(res.data.result)
-				this.getPageData()
-			})
-		},
-		methods: {
-			toDetail() {
-				this.$router.push({
-					path: '/detail'
-				})
-			},
-			handleSelectionChange(data) {
-				this.multipleSelection = data;
-				console.log(this.multipleSelection);
-			},
-			handleAll(data) {
-				this.multipleSelection = data
-				console.log(this.multipleSelection)
-			},
-			handleCommand(command) {
-				this.status = command
-
-			},
-			handlehpCommand(command) {
-				this.hpstatus = command
-
-			},
-			handleCurrentChange(val) {
-				this.currentPage = val;
-				this.getPageData();
-			},
-			jumpFirstPage() {
-				this.$refs.pagination.handleCurrentChange(1);
-				this.$emit('handleCurrentChange', 1);
-			},
-			jumpLastPage() {
-				let font = this.$refs.pagination
-				let cpage = Math.ceil(font.total / font.pageSize);
-				font.handleCurrentChange(cpage);
-			},
-			getPageData() {
-				let start = (this.currentPage - 1) * this.pagesize;
-				let end = start + this.pagesize;
-				this.srcList = this.list.slice(start, end);
-			},
-			success(){
-				let ids=Array.from(this.multipleSelection,({id})=>id)
-				this.$request({
-					url: '/api/Account/manager',
-					method: 'post',
-					data: {
-						ids:ids,
-						operateType: 3
-					}
-				}).then((res) => {
-					if(res.code==200){
-						this.$message({
-							type:'success',
-							message:res.msg
-						})
-					}else{
-						this.$message({
-							type:'danger',
-							message:res.msg
-						})
-					}
-				})
-			},
-			failed(){
-				let ids=Array.from(this.multipleSelection,({id})=>id)
-				this.$request({
-					url: '/api/Account/manager',
-					method: 'post',
-					data: {
-						ids:ids,
-						operateType: 4
-					}
-				}).then((res) => {
-					if(res.code==200){
-						this.$message({
-							type:'success',
-							message:res.msg
-						})
-					}else{
-						this.$message({
-							type:'danger',
-							message:res.msg
-						})
-					}
-				})
-			},
-			recover(){
-				let ids=Array.from(this.multipleSelection,({id})=>id)
-				this.$request({
-					url: '/api/Account/manager',
-					method: 'post',
-					data: {
-						ids:ids,
-						operateType: 2
-					}
-				}).then((res) => {
-					if(res.code==200){
-						this.$message({
-							type:'success',
-							message:"恢复成功"
-						})
-					}else{
-						this.$message({
-							type:'danger',
-							message:"恢复失败"
-						})
-					}
-				})
-			},
-			deleted(){
-				let ids=Array.from(this.multipleSelection,({id})=>id)
-				this.$request({
-					url: '/api/Account/manager',
-					method: 'post',
-					data: {
-						ids:ids,
-						operateType: 1
-					}
-				}).then((res) => {
-					if(res.code==200){
-						this.$message({
-							type:'success',
-							message:"删除成功"
-						})
-					}else{
-						this.$message({
-							type:'danger',
-							message:"删除失败"
-						})
-					}
-				})
-			},
-			Srecover(id){
-				this.$request({
-					url: '/api/Account/manager',
-					method: 'post',
-					data: {
-						ids:[id],
-						operateType: 2
-					}
-				}).then((res) => {
-					if(res.code==200){
-						this.$message({
-							type:'success',
-							message:'恢复成功'
-						})
-					}else{
-						this.$message({
-							type:'danger',
-							message:'恢复失败'
-						})
-					}
-				})
-			},
-			Sdeleted(id){
-				this.$request({
-					url: '/api/Account/manager',
-					method: 'post',
-					data: {
-						ids:[id],
-						operateType: 1
-					}
-				}).then((res) => {
-					if(res.code==200){
-						this.$message({
-							type:'success',
-							message:'恢复成功'
-						})
-					}else{
-						this.$message({
-							type:'danger',
-							message:'恢复失败'
-						})
-					}
-				})
-			}
-		}
-	}
+export default {
+  filters: {
+    statusFilter(status) {
+      const statusMap = {
+        published: 'success',
+        draft: 'gray',
+        deleted: 'danger'
+      }
+      return statusMap[status]
+    }
+  },
+  data() {
+    return {
+      srcList: [],
+      list: [],
+      listLoading: false,
+      status: '',
+      currentPage: 1,
+      pagesize: 11,
+      hpstatus: '',
+      input4: '',
+      checked: false,
+      pickerOptions: {
+        shortcuts: [{
+          text: '最近一周',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+            picker.$emit('pick', [start, end])
+          }
+        }, {
+          text: '最近一个月',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+            picker.$emit('pick', [start, end])
+          }
+        }, {
+          text: '最近三个月',
+          onClick(picker) {
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+            picker.$emit('pick', [start, end])
+          }
+        }]
+      },
+      value1: '',
+      value2: ''
+    }
+  },
+  created() {
+  },
+  mounted() {
+    this.$request({
+      url: '/api/Account/search',
+      method: 'post',
+      data: {
+        pageIndex: 0,
+        pageSize: 30
+      }
+    }).then((res) => {
+      this.list = res.data.result
+      console.log(res.data.result)
+      this.getPageData()
+    })
+  },
+  methods: {
+    toDetail() {
+      this.$router.push({
+        path: '/detail'
+      })
+    },
+    handleSelectionChange(data) {
+      this.multipleSelection = data
+      console.log(this.multipleSelection)
+    },
+    handleAll(data) {
+      this.multipleSelection = data
+      console.log(this.multipleSelection)
+    },
+    handleCommand(command) {
+      this.status = command
+    },
+    handlehpCommand(command) {
+      this.hpstatus = command
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val
+      this.getPageData()
+    },
+    jumpFirstPage() {
+      this.$refs.pagination.handleCurrentChange(1)
+      this.$emit('handleCurrentChange', 1)
+    },
+    jumpLastPage() {
+      const font = this.$refs.pagination
+      const cpage = Math.ceil(font.total / font.pageSize)
+      font.handleCurrentChange(cpage)
+    },
+    getPageData() {
+      const start = (this.currentPage - 1) * this.pagesize
+      const end = start + this.pagesize
+      this.srcList = this.list.slice(start, end)
+    },
+    success() {
+      const ids = Array.from(this.multipleSelection, ({ id }) => id)
+      this.$request({
+        url: '/api/Account/manager',
+        method: 'post',
+        data: {
+          ids: ids,
+          operateType: 3
+        }
+      }).then((res) => {
+        if (res.code == 200) {
+          this.$message({
+            type: 'success',
+            message: res.msg
+          })
+        } else {
+          this.$message({
+            type: 'danger',
+            message: res.msg
+          })
+        }
+      })
+    },
+    failed() {
+      const ids = Array.from(this.multipleSelection, ({ id }) => id)
+      this.$request({
+        url: '/api/Account/manager',
+        method: 'post',
+        data: {
+          ids: ids,
+          operateType: 4
+        }
+      }).then((res) => {
+        if (res.code == 200) {
+          this.$message({
+            type: 'success',
+            message: res.msg
+          })
+        } else {
+          this.$message({
+            type: 'danger',
+            message: res.msg
+          })
+        }
+      })
+    },
+    recover() {
+      const ids = Array.from(this.multipleSelection, ({ id }) => id)
+      this.$request({
+        url: '/api/Account/manager',
+        method: 'post',
+        data: {
+          ids: ids,
+          operateType: 2
+        }
+      }).then((res) => {
+        if (res.code == 200) {
+          this.$message({
+            type: 'success',
+            message: '恢复成功'
+          })
+        } else {
+          this.$message({
+            type: 'danger',
+            message: '恢复失败'
+          })
+        }
+      })
+    },
+    deleted() {
+      const ids = Array.from(this.multipleSelection, ({ id }) => id)
+      this.$request({
+        url: '/api/Account/manager',
+        method: 'post',
+        data: {
+          ids: ids,
+          operateType: 1
+        }
+      }).then((res) => {
+        if (res.code == 200) {
+          this.$message({
+            type: 'success',
+            message: '删除成功'
+          })
+        } else {
+          this.$message({
+            type: 'danger',
+            message: '删除失败'
+          })
+        }
+      })
+    },
+    Srecover(id) {
+      this.$request({
+        url: '/api/Account/manager',
+        method: 'post',
+        data: {
+          ids: [id],
+          operateType: 2
+        }
+      }).then((res) => {
+        if (res.code == 200) {
+          this.$message({
+            type: 'success',
+            message: '恢复成功'
+          })
+        } else {
+          this.$message({
+            type: 'danger',
+            message: '恢复失败'
+          })
+        }
+      })
+    },
+    Sdeleted(id) {
+      this.$request({
+        url: '/api/Account/manager',
+        method: 'post',
+        data: {
+          ids: [id],
+          operateType: 1
+        }
+      }).then((res) => {
+        if (res.code == 200) {
+          this.$message({
+            type: 'success',
+            message: '恢复成功'
+          })
+        } else {
+          this.$message({
+            type: 'danger',
+            message: '恢复失败'
+          })
+        }
+      })
+    }
+  }
+}
 </script>
 <style lang="scss">
 	.pulldown {

+ 103 - 103
src/views/register/index.vue

xqd xqd xqd xqd xqd xqd
@@ -83,7 +83,7 @@
               type="primary"
               class="loginbtn"
               @click.native.prevent="handleLogin(loginForm)"
-              >注册账号
+            >注册账号
             </el-button>
             <div class="registerbtn flex3">
               <div class="forgect">
@@ -165,7 +165,7 @@
               type="primary"
               class="loginbtn"
               @click.native.prevent="handleLogin"
-              >注册账号
+            >注册账号
             </el-button>
             <div class="registerbtn flex3">
               <div class="forgect">
@@ -303,13 +303,13 @@
                     list-type="picture"
                     style="margin-top: 15px"
                   >
-                    <img v-if="imageUrl" :src="imageUrl" class="avatar" />
+                    <img v-if="imageUrl" :src="imageUrl" class="avatar">
                     <el-image
+                      v-if="!imageUrl"
                       style="width: 280px; height: 175px; margin-top: 5px"
                       :src="upself"
                       :fit="fit"
-                      v-if="!imageUrl"
-                    ></el-image>
+                    />
                   </el-upload>
                 </div>
                 <p class="usa">*注意上传法人手持身份证半身照</p>
@@ -337,13 +337,13 @@
                     list-type="picture"
                     style="margin-top: 15px"
                   >
-                    <img v-if="imageUrl" :src="imageUrl" class="avatar" />
+                    <img v-if="imageUrl" :src="imageUrl" class="avatar">
                     <el-image
+                      v-if="!imageUrl"
                       style="width: 280px; height: 175px; margin-top: 5px"
                       :src="upweituo"
                       :fit="fit"
-                      v-if="!imageUrl"
-                    ></el-image>
+                    />
                   </el-upload>
                   <!-- <el-upload
                     action="http://123.207.180.167:8700/api/File"
@@ -367,7 +367,7 @@
               type="primary"
               class="loginbtn"
               @click.native.prevent="handleLogin(providerForm)"
-              >注册账号
+            >注册账号
             </el-button>
             <div class="registerbtn flex3">
               <div class="forgect">
@@ -385,181 +385,181 @@
 </template>
 
 <script>
-let that;
-import { validUsername } from "@/utils/validate";
-import logo from "/src/assets/img/logo.png";
-import upself from "/src/assets/img/upuer.png";
-import upweituo from "/src/assets/img/upattor.png";
-import request from "@/utils/request";
+let that
+import { validUsername } from '@/utils/validate'
+import logo from '/src/assets/img/logo.png'
+import upself from '/src/assets/img/upuer.png'
+import upweituo from '/src/assets/img/upattor.png'
+import request from '@/utils/request'
 export default {
-  name: "Login",
+  name: 'Login',
   data() {
     const validatename = (rule, value, callback) => {
       if (value.length == 0) {
-        callback(new Error("请输入业务员真实姓名"));
+        callback(new Error('请输入业务员真实姓名'))
       } else {
-        callback();
+        callback()
       }
-    };
+    }
     const validateUsername = (rule, value, callback) => {
       if (!validUsername(value)) {
-        callback(new Error("请输入账户名称"));
+        callback(new Error('请输入账户名称'))
       } else {
-        callback();
+        callback()
       }
-    };
+    }
 
     const validatePassword = (rule, value, callback) => {
       if (value.length < 6) {
-        callback(new Error("请输入大于6位数密码"));
+        callback(new Error('请输入大于6位数密码'))
       } else {
-        callback();
+        callback()
       }
-    };
+    }
     const validatemobile = (rule, value, callback) => {
       if (value.length == 0) {
-        callback(new Error("请输入电话号码"));
+        callback(new Error('请输入电话号码'))
       } else {
-        callback();
+        callback()
       }
-    };
+    }
     return {
       upself: upself,
       upweituo: upweituo,
-      fit: "cover",
-      imageUrl: "",
+      fit: 'cover',
+      imageUrl: '',
       loginForm: {
-        realName: "",
-        account: "",
-        password: "",
-        surepsd: "",
-        mobile: "",
+        realName: '',
+        account: '',
+        password: '',
+        surepsd: '',
+        mobile: ''
       },
       providerForm: {
-        account: "",
-        password: "",
-        name: "",
-        socialCode: "",
-        legalPerson: "",
-        contacts: "",
-        contactsMobile: "",
+        account: '',
+        password: '',
+        name: '',
+        socialCode: '',
+        legalPerson: '',
+        contacts: '',
+        contactsMobile: '',
         identifyPics: [
-          "https://easygolf.oss-ap-southeast-6.aliyuncs.com/golf/2022-03/18/88df7532ff7de229b617.jpg",
-          "https://easygolf.oss-ap-southeast-6.aliyuncs.com/golf/2022-03/18/ab37cbd176e12cef2f82.jpg",
+          'https://easygolf.oss-ap-southeast-6.aliyuncs.com/golf/2022-03/18/88df7532ff7de229b617.jpg',
+          'https://easygolf.oss-ap-southeast-6.aliyuncs.com/golf/2022-03/18/ab37cbd176e12cef2f82.jpg'
         ],
         proxyFile: [
-          "https://easygolf.oss-ap-southeast-6.aliyuncs.com/golf/2022-03/18/88df7532ff7de229b617.jpg",
-          "https://easygolf.oss-ap-southeast-6.aliyuncs.com/golf/2022-03/18/ab37cbd176e12cef2f82.jpg",
-        ],
+          'https://easygolf.oss-ap-southeast-6.aliyuncs.com/golf/2022-03/18/88df7532ff7de229b617.jpg',
+          'https://easygolf.oss-ap-southeast-6.aliyuncs.com/golf/2022-03/18/ab37cbd176e12cef2f82.jpg'
+        ]
       },
       loginRules: {
         realName: [
           {
             required: true,
-            trigger: "blur",
-            validator: validatename,
-          },
+            trigger: 'blur',
+            validator: validatename
+          }
         ],
         account: [
           {
             required: true,
-            trigger: "blur",
-            validator: validateUsername,
-          },
+            trigger: 'blur',
+            validator: validateUsername
+          }
         ],
         password: [
           {
             required: true,
-            trigger: "blur",
-            validator: validatePassword,
-          },
+            trigger: 'blur',
+            validator: validatePassword
+          }
         ],
         mobile: [
           {
             required: true,
-            trigger: "blur",
-            validator: validatemobile,
-          },
-        ],
+            trigger: 'blur',
+            validator: validatemobile
+          }
+        ]
       },
       loading: false,
-      passwordType: "password",
+      passwordType: 'password',
       redirect: undefined,
       src: logo,
       checked: 0,
-      showNext: false,
-    };
+      showNext: false
+    }
   },
   watch: {
     $route: {
-      handler: function (route) {
-        this.redirect = route.query && route.query.redirect;
+      handler: function(route) {
+        this.redirect = route.query && route.query.redirect
       },
-      immediate: true,
-    },
+      immediate: true
+    }
   },
   mounted() {
-    that = this;
-    this.checked = this.$route.query.checked;
+    that = this
+    this.checked = this.$route.query.checked
   },
   methods: {
     nextStep() {
-      this.showNext = true;
+      this.showNext = true
     },
     handleAvatarSuccess(res, file) {
-      console.log(file.raw, 88);
-      this.upself = URL.createObjectURL(file.raw);
+      console.log(file.raw, 88)
+      this.upself = URL.createObjectURL(file.raw)
+    },
+    handleSuccess(res, file) {
+	  console.log(file.raw, 88)
+	  this.upweituo = URL.createObjectURL(file.raw)
     },
-	handleSuccess(res, file) {
-	  console.log(file.raw, 88);
-	  this.upweituo = URL.createObjectURL(file.raw);
-	},
     handlePictureCardPreview(file) {
-      console.log(file, 88);
-      this.imageUrl = file.url;
+      console.log(file, 88)
+      this.imageUrl = file.url
     },
     showPwd() {
-      if (this.passwordType === "password") {
-        this.passwordType = "";
+      if (this.passwordType === 'password') {
+        this.passwordType = ''
       } else {
-        this.passwordType = "password";
+        this.passwordType = 'password'
       }
       this.$nextTick(() => {
-        this.$refs.password.focus();
-      });
+        this.$refs.password.focus()
+      })
     },
     backLogin() {
       this.$router.replace({
-        path: "/login",
-        query: {},
-      });
+        path: '/login',
+        query: {}
+      })
     },
     handleLogin(form) {
       if (form == this.loginForm) {
         request({
-          url: "/api/Account/register",
-          method: "post",
-          data: form,
+          url: '/api/Account/register',
+          method: 'post',
+          data: form
         }).then((res) => {
-          this.$message("注册成功");
-          this.$router.push({ path: "/login" });
-        });
+          this.$message('注册成功')
+          this.$router.push({ path: '/login' })
+        })
       } else {
         this.$request({
-          url: "/api/Supplier/register",
-          method: "post",
-          data: form,
+          url: '/api/Supplier/register',
+          method: 'post',
+          data: form
         }).then((res) => {
-          this.$message("注册成功");
+          this.$message('注册成功')
           this.$router.push({
-            path: "/login",
-            query: { checked: this.checked },
-          });
-        });
+            path: '/login',
+            query: { checked: this.checked }
+          })
+        })
       }
-    },
-  },
-};
+    }
+  }
+}
 </script>
 
 <style lang="scss">

+ 9 - 9
vue.config.js

xqd xqd
@@ -28,14 +28,14 @@ module.exports = {
   outputDir: 'dist',
   assetsDir: 'static',
   // lintOnSave: process.env.NODE_ENV === 'development',
-  lintOnSave:false,
-      devServer:{
-          // 关闭eslint语法验证
-          overlay:{
-              warning:false,
-              errors:false
-          }
-      },
+  lintOnSave: false,
+  // devServer: {
+  //   // 关闭eslint语法验证
+  //   overlay: {
+  //     warning: false,
+  //     errors: false
+  //   }
+  // },
   productionSourceMap: false,
   devServer: {
     port: port,
@@ -56,7 +56,7 @@ module.exports = {
       }
     }
   },
-  
+
   chainWebpack(config) {
     // it can improve the speed of the first screen, it is recommended to turn on preload
     config.plugin('preload').tap(() => [