lsw 1 year ago
parent
commit
e855a23a6c

+ 12 - 5
admin-ui/src/layout/components/Navbar.vue

@@ -15,15 +15,19 @@
       <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
         <div class="avatar-wrapper">
           <img :src="avatar" class="user-avatar" />
-          <div class="cons">
-            <div class="nickName">{{user.nickName}}</div>
-            <div class="desc omit">{{user.deptNameStr?user.deptNameStr:'无部门'}}</div>
+          <div class="cons" v-if="user.companyId" style="margin-top: -4px">
+            <div class="nickName">{{ user.nickName }}</div>
+          </div>
+          <div class="cons" v-else>
+            <div class="nickName">{{ user.nickName }}</div>
+            <div class="desc omit">{{ user.deptNameStr ? user.deptNameStr : '无部门' }}</div>
           </div>
           <i class="el-icon-caret-bottom" />
         </div>
         <el-dropdown-menu slot="dropdown">
           <router-link to="/user/profile"><el-dropdown-item>个人中心</el-dropdown-item></router-link>
-          <el-dropdown-item @click.native="setting = true"><span>布局设置</span></el-dropdown-item>
+          <el-dropdown-item @click.native="qr()" v-if="user.companyId"><span>生成二维码</span></el-dropdown-item>
+          <el-dropdown-item @click.native="setting = true" v-else><span>布局设置</span></el-dropdown-item>
           <el-dropdown-item divided @click.native="logout"><span>退出登录</span></el-dropdown-item>
         </el-dropdown-menu>
       </el-dropdown>
@@ -39,7 +43,7 @@ import Hamburger from '@/components/Hamburger';
 import Screenfull from '@/components/Screenfull';
 import SizeSelect from '@/components/SizeSelect';
 import Search from '@/components/HeaderSearch';
-
+import qr from '@/components/qr';
 export default {
   components: {
     Breadcrumb,
@@ -74,6 +78,9 @@ export default {
     }
   },
   methods: {
+    qr() {
+      this.iframe({ obj: qr, param: {}, title: '生成二维码', width: '27%', height: '45%' });
+    },
     web() {
       window.open('/');
     },

+ 5 - 0
admin-ui/src/views/dashboard/PanelGroup.vue

@@ -58,6 +58,11 @@ export default {
       type: Object
     }
   },
+  data() {
+    return {
+      user: this.$store.state.user
+    };
+  },
   methods: {
     handleSetLineChartData(type) {
       this.$emit('handleSetLineChartData', type);

+ 1 - 3
admin-ui/src/views/index.vue

@@ -11,10 +11,8 @@
         style="padding-top: 10px"
         src="//tianqi.2345.com/plugin/widget/index.htm?s=3&z=2&t=0&v=0&d=2&bd=0&k=&f=#545555&ltf=#545555&htf=ffffff&q=1&e=1&a=1&c=72036&w=180&h=36&align=center"
       ></iframe>
-      <dselect v-model="deptId" style="width: 200px; float: right; margin-top: 10px"></dselect>
-      <span style="float: right; padding-top: 16px; color: #838383">当前部门:</span>
     </div>
-    <panel-group :cdata="data.count" />
+    <panel-group :cdata="data.count"/>
     <!--散货过车和重量监控-->
     <div class="chart-wrapper">
       <div class="pop" style="width: 40%">

+ 16 - 16
admin-ui/src/views/system/user/profile/index.vue

@@ -12,27 +12,27 @@
             </div>
             <ul class="list-group list-group-striped">
               <li class="list-group-item">
-                <svg-icon icon-class="user" />用户名称
+                登录账户
                 <div class="pull-right">{{ user.userName }}</div>
               </li>
-              <li class="list-group-item">
-                <svg-icon icon-class="phone" />手机号码
+              <li class="list-group-item" v-if="!user.companyId">
+                手机号码
                 <div class="pull-right">{{ user.phonenumber }}</div>
               </li>
-              <li class="list-group-item">
-                <svg-icon icon-class="email" />用户邮箱
+              <li class="list-group-item" v-if="!user.companyId">
+                用户邮箱
                 <div class="pull-right">{{ user.email }}</div>
               </li>
-              <li class="list-group-item">
-                <svg-icon icon-class="tree" />所属部门
+              <li class="list-group-item" v-if="!user.companyId">
+                所属部门
                 <div class="pull-right" v-if="user.dept">{{ user.dept.deptName }} / {{ postGroup }}</div>
               </li>
               <li class="list-group-item">
-                <svg-icon icon-class="peoples" />所属角色
+                所属角色
                 <div class="pull-right">{{ roleGroup }}</div>
               </li>
               <li class="list-group-item">
-                <svg-icon icon-class="date" />创建日期
+                创建日期
                 <div class="pull-right">{{ user.createTime }}</div>
               </li>
             </ul>
@@ -59,20 +59,20 @@
 </template>
 
 <script>
-import userAvatar from "./userAvatar";
-import userInfo from "./userInfo";
-import resetPwd from "./resetPwd";
-import { getUserProfile } from "@/api/system/user";
+import userAvatar from './userAvatar';
+import userInfo from './userInfo';
+import resetPwd from './resetPwd';
+import { getUserProfile } from '@/api/system/user';
 
 export default {
-  name: "Profile",
+  name: 'Profile',
   components: { userAvatar, userInfo, resetPwd },
   data() {
     return {
       user: {},
       roleGroup: {},
       postGroup: {},
-      activeTab: "userinfo"
+      activeTab: 'userinfo'
     };
   },
   created() {
@@ -80,7 +80,7 @@ export default {
   },
   methods: {
     getUser() {
-      getUserProfile().then(response => {
+      getUserProfile().then((response) => {
         this.user = response.data;
         this.roleGroup = response.roleGroup;
         this.postGroup = response.postGroup;

+ 15 - 17
admin-ui/src/views/system/user/profile/resetPwd.vue

@@ -1,29 +1,29 @@
 <template>
   <el-form ref="form" :model="user" :rules="rules" label-width="80px">
     <el-form-item label="旧密码" prop="oldPassword">
-      <el-input v-model="user.oldPassword" placeholder="请输入旧密码" type="password" show-password/>
+      <el-input v-model="user.oldPassword" placeholder="请输入旧密码" type="password" show-password />
     </el-form-item>
     <el-form-item label="新密码" prop="newPassword">
-      <el-input v-model="user.newPassword" placeholder="请输入新密码" type="password" show-password/>
+      <el-input v-model="user.newPassword" placeholder="请输入新密码" type="password" show-password />
     </el-form-item>
     <el-form-item label="确认密码" prop="confirmPassword">
-      <el-input v-model="user.confirmPassword" placeholder="请确认新密码" type="password" show-password/>
+      <el-input v-model="user.confirmPassword" placeholder="请确认新密码" type="password" show-password />
     </el-form-item>
     <el-form-item>
-      <el-button type="primary" size="mini" @click="submit">保存</el-button>
-      <el-button type="danger" size="mini" @click="close">关闭</el-button>
+      <el-button type="primary" @click="submit">保存</el-button>
+      <el-button type="danger" @click="close">关闭</el-button>
     </el-form-item>
   </el-form>
 </template>
 
 <script>
-import { updateUserPwd } from "@/api/system/user";
+import { updateUserPwd } from '@/api/system/user';
 
 export default {
   data() {
     const equalToPassword = (rule, value, callback) => {
       if (this.user.newPassword !== value) {
-        callback(new Error("两次输入的密码不一致"));
+        callback(new Error('两次输入的密码不一致'));
       } else {
         callback();
       }
@@ -36,26 +36,24 @@ export default {
       },
       // 表单校验
       rules: {
-        oldPassword: [
-          { required: true, message: "旧密码不能为空", trigger: "blur" }
-        ],
+        oldPassword: [{ required: true, message: '旧密码不能为空', trigger: 'blur' }],
         newPassword: [
-          { required: true, message: "新密码不能为空", trigger: "blur" },
-          { min: 6, max: 20, message: "长度在 6 到 20 个字符", trigger: "blur" }
+          { required: true, message: '新密码不能为空', trigger: 'blur' },
+          { min: 6, max: 20, message: '长度在 6 到 20 个字符', trigger: 'blur' }
         ],
         confirmPassword: [
-          { required: true, message: "确认密码不能为空", trigger: "blur" },
-          { required: true, validator: equalToPassword, trigger: "blur" }
+          { required: true, message: '确认密码不能为空', trigger: 'blur' },
+          { required: true, validator: equalToPassword, trigger: 'blur' }
         ]
       }
     };
   },
   methods: {
     submit() {
-      this.$refs["form"].validate(valid => {
+      this.$refs['form'].validate((valid) => {
         if (valid) {
-          updateUserPwd(this.user.oldPassword, this.user.newPassword).then(response => {
-            this.$modal.msgSuccess("修改成功");
+          updateUserPwd(this.user.oldPassword, this.user.newPassword).then((response) => {
+            this.$modal.msgSuccess('修改成功');
           });
         }
       });

+ 4 - 5
admin-ui/src/views/system/user/profile/userInfo.vue

@@ -1,15 +1,15 @@
 <template>
   <el-form ref="form" :model="user" :rules="rules" label-width="80px">
-    <el-form-item label="用户昵称" prop="nickName">
+    <el-form-item label="姓名" prop="nickName">
       <el-input v-model="user.nickName" maxlength="30" />
     </el-form-item>
-    <el-form-item label="手机号码" prop="phonenumber">
+    <el-form-item label="手机" prop="phonenumber">
       <el-input v-model="user.phonenumber" maxlength="11" />
     </el-form-item>
-    <el-form-item label="邮箱" prop="email">
+    <el-form-item label="邮箱" prop="email" v-if="!user.companyId">
       <el-input v-model="user.email" maxlength="50" />
     </el-form-item>
-    <el-form-item label="性别">
+    <el-form-item label="性别" v-if="!user.companyId">
       <el-radio-group v-model="user.sex">
         <el-radio label="0">男</el-radio>
         <el-radio label="1">女</el-radio>
@@ -45,7 +45,6 @@ export default {
           }
         ],
         phonenumber: [
-          { required: true, message: '手机号码不能为空', trigger: 'blur' },
           {
             pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
             message: '请输入正确的手机号码',

+ 99 - 0
admin-ui/src/views/work/company/detail.vue

@@ -0,0 +1,99 @@
+<template>
+  <div class="cmain">
+    <el-form ref="form" :model="form" :rules="rules" label-width="110px">
+      <div class="bos">
+        <div class="lab">
+          <div class="bsg"></div>
+          <div class="tit">企业信息</div>
+        </div>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="企业名称" prop="companyName">
+              <el-input v-model="form.companyName" placeholder="请输入企业名称" :disabled="param.detail" clearable />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="企业负责人" prop="director">
+              <el-input v-model="form.director" placeholder="请输入企业方负责人" clearable :disabled="param.detail" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="手机号" prop="phone">
+              <el-input v-model="form.phone" placeholder="请输入手机号" clearable :disabled="param.detail" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="联系地址" prop="address">
+              <el-input v-model="form.address" placeholder="请输入联系地址" clearable :disabled="param.detail" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-form-item label="营业执照" prop="business">
+          <ImageUpload v-model="form.business" :isShowTip="false" :limit="1"></ImageUpload>
+        </el-form-item>
+      </div>
+      <div class="bos">
+        <div class="lab">
+          <div class="bsg"></div>
+          <div class="tit">对公账户信息</div>
+        </div>
+        <el-form-item label="开户行" prop="bankName">
+          <el-input v-model="form.bankName" placeholder="请输入开户行" clearable :disabled="param.detail" />
+        </el-form-item>
+        <el-form-item label="对公账号" prop="bankAccount">
+          <el-input v-model="form.bankAccount" placeholder="请输入对公账号" clearable :disabled="param.detail" />
+        </el-form-item>
+        <el-form-item label="开户许可证" prop="b1">
+          <ImageUpload v-model="form.b1" :isShowTip="false" :limit="1"></ImageUpload>
+        </el-form-item>
+      </div>
+    </el-form>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      form: {},
+      rules: {
+        companyName: [{ required: true, message: '不能为空', trigger: 'blur' }],
+        director: [{ required: true, message: '不能为空', trigger: 'blur' }],
+        phone: [{ required: true, message: '不能为空', trigger: 'blur' }],
+        address: [{ required: true, message: '不能为空', trigger: 'blur' }],
+        business: [{ required: true, message: '不能为空', trigger: 'blur' }],
+        bankName: [{ required: true, message: '不能为空', trigger: 'blur' }],
+        bankAccount: [{ required: true, message: '不能为空', trigger: 'blur' }],
+        b1: [{ required: true, message: '不能为空', trigger: 'blur' }]
+      }
+    };
+  },
+  props: {
+    param: {
+      type: Object,
+      default: () => {
+        return {};
+      }
+    },
+    layerid: {
+      type: String
+    }
+  },
+  mounted() {
+    if (this.param.id) {
+      this.ajax({ url: '/work/company/index' }).then((response) => {
+        this.form = response.data;
+      });
+    }
+  },
+  methods: {
+    submitForm() {
+      this.$refs['form'].validate((valid) => {
+        if (valid) {}
+      });
+    }
+  }
+};
+</script>

+ 13 - 2
admin-ui/src/views/work/money/index.vue

@@ -5,6 +5,7 @@
         <div class="ctop">
           <span class="icon">&#xe646;</span>
           <span class="ctitle">{{ form.companyName }}</span>
+          <span class="ckk" @click="op('info')">查看</span>
           <img :src="rz" class="rz" />
           <span class="icon qr" title="点击查看企业二维码" @click="op('qr')">&#xe643;</span>
         </div>
@@ -28,6 +29,7 @@ import recharge_edit from './recharge/edit.vue';
 import recharge_list from './recharge/record.vue';
 import qr from '@/components/qr';
 import rz from '@/assets/images/rz.png';
+import company from '@/views/work/company/detail.vue';
 export default {
   name: 'Money',
   data() {
@@ -48,8 +50,11 @@ export default {
   },
   methods: {
     op(tag, row) {
+      if (tag == 'info') {
+        this.iframe({ obj: company, param: { id: this.form.id, detail: true }, title: '企业信息', width: '60%', height: '75%' });
+      }
       if (tag == 'qr') {
-        this.iframe({ obj: qr, param: {}, title: '查看企业二维码', width: '35%', height: '45%' });
+        this.iframe({ obj: qr, param: {}, title: '查看企业二维码', width: '27%', height: '45%' });
       }
       if (tag == 'out') {
         this.iframe({ obj: out_edit, param: {}, title: '提现申请', width: '40%', height: '55%' });
@@ -77,6 +82,12 @@ export default {
     .ctitle {
       font-size: 16px;
     }
+    .ckk {
+      color: #1890ff;
+      cursor: pointer;
+      padding-left: 10px;
+      font-size: 13px;
+    }
     .rz {
       float: right;
       width: 80px;
@@ -95,7 +106,7 @@ export default {
   }
   .money {
     padding-top: 20px;
-    font-size: 30px;
+    font-size: 32px;
     color: #1890ff;
   }
   .btm {

+ 9 - 7
admin-ui/src/views/work/project/edit.vue

@@ -9,33 +9,33 @@
         <el-row>
           <el-col :span="12">
             <el-form-item label="项目名称" prop="projectName">
-              <el-input v-model="form.projectName" placeholder="请输入项目名称" clearable />
+              <el-input v-model="form.projectName" placeholder="请输入项目名称" clearable :disabled="param.detail" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="项目编号" prop="num">
-              <el-input v-model="form.num" placeholder="自动根据年月日生成" disabled />
+              <el-input v-model="form.num" placeholder="自动根据年月日生成" disabled :disabled="param.detail" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
             <el-form-item label="项目周期" prop="sData">
-              <el-date-picker v-model="dateRange" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" style="width: 100% !important"></el-date-picker>
+              <el-date-picker v-model="dateRange" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :disabled="param.detail" style="width: 100% !important"></el-date-picker>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="结算日" prop="bData">
-              <el-date-picker clearable v-model="form.bData" type="date" value-format="yyyy-MM-dd" placeholder="请选择结算日"></el-date-picker>
+              <el-date-picker clearable v-model="form.bData" type="date" value-format="yyyy-MM-dd" placeholder="请选择结算日" :disabled="param.detail"></el-date-picker>
             </el-form-item>
           </el-col>
         </el-row>
         <el-form-item label="附加说明" prop="contents">
-          <el-input v-model="form.contents" type="textarea" placeholder="请输入附加说明" rows="3" clearable />
+          <el-input v-model="form.contents" type="textarea" placeholder="请输入附加说明" rows="3" clearable :disabled="param.detail" />
         </el-form-item>
       </div>
     </el-form>
-    <div class="mfooter">
+    <div class="mfooter" v-if="!param.detail">
       <el-button type="primary" @click="submitForm">确 定</el-button>
       <el-button @click="$layer.close(layerid)">取 消</el-button>
     </div>
@@ -51,7 +51,7 @@ export default {
       rules: {
         projectName: [{ required: true, message: '不能为空', trigger: 'blur' }],
         sData: [{ required: true, message: '不能为空', trigger: 'blur' }],
-        bData: [{ required: true, message: '不能为空', trigger: 'blur' }],
+        bData: [{ required: true, message: '不能为空', trigger: 'blur' }]
       }
     };
   },
@@ -70,6 +70,8 @@ export default {
     if (this.param.id) {
       this.ajax({ url: '/work/project/detail/' + this.param.id }).then((response) => {
         this.form = response.data;
+        this.dateRange.push(this.form.sData);
+        this.dateRange.push(this.form.eData);
       });
     }
   },

+ 31 - 19
admin-ui/src/views/work/project/index.vue

@@ -2,13 +2,19 @@
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" @submit.native.prevent v-show="showSearch" label-width="auto">
       <el-form-item label="项目名称" prop="projectName">
-        <el-input v-model="queryParams.projectName" placeholder="请输入项目名称" @keyup.enter.native="handleQuery" clearable class="inp" />
+        <el-input v-model="queryParams.projectName" placeholder="请输入项目名称" @keyup.enter.native="handleQuery" clearable />
       </el-form-item>
       <el-form-item label="项目编号" prop="num">
-        <el-input v-model="queryParams.num" placeholder="请输入项目编号" @keyup.enter.native="handleQuery" clearable class="inp" />
+        <el-input v-model="queryParams.num" placeholder="请输入项目编号" @keyup.enter.native="handleQuery" class="inp" clearable />
       </el-form-item>
-      <el-form-item label="状态" prop="state">
-        <el-input v-model="queryParams.state" placeholder="请输入状态" @keyup.enter.native="handleQuery" clearable class="inp" />
+      <el-form-item label="项目状态" prop="state">
+        <el-select v-model="queryParams.state" placeholder="充值状态" clearable style="width: 117px">
+          <el-option value="0" label="启用"></el-option>
+          <el-option value="1" label="禁用"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="发包日期">
+        <el-date-picker v-model="dateRange" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
@@ -32,22 +38,27 @@
       </el-table-column>
       <el-table-column label="服务公司" align="center">
         <template slot-scope="scope">
-          <div class="omit">{{ scope.row.serviceCompany }}</div>
+          <div class="omit" :title="scope.row.serviceCompany">{{ scope.row.serviceCompany }}</div>
+        </template>
+      </el-table-column>
+      <el-table-column label="接包人数" align="center" prop="peoples" width="120">
+        <template slot-scope="scope">
+          <div class="omit">{{ scope.row.peoples || 0 }}</div>
         </template>
       </el-table-column>
-      <el-table-column label="接包人数" align="center" prop="peoples" width="120" />
       <el-table-column label="发包日期" align="center" prop="createTime" />
       <el-table-column label="项目状态" align="center" prop="state" width="100">
         <template slot-scope="scope">
           <div class="switch">
             <el-switch v-model="scope.row.state" :active-value="0" :width="50" :inactive-value="1" @change="op('change', scope.row)"></el-switch>
-            <span class="zc" v-if="scope.row.state == 0">正常</span>
+            <span class="zc" v-if="scope.row.state == 0">启用</span>
             <span class="ty" v-else>禁用</span>
           </div>
         </template>
       </el-table-column>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
+          <el-button size="mini" type="text" icon="el-icon-view" @click="op('detail', scope.row)" v-hasPermi="['work:project:list']">查看</el-button>
           <el-button size="mini" type="text" icon="el-icon-edit" @click="op('edit', scope.row)" v-hasPermi="['work:project:edit']">修改</el-button>
           <el-button size="mini" type="text" icon="el-icon-delete" @click="del(scope.row)" v-hasPermi="['work:project:remove']">删除</el-button>
         </template>
@@ -69,20 +80,12 @@ export default {
       ids: [],
       showSearch: true,
       response: {},
+      dateRange: [],
       queryParams: {
         pageNum: 1,
         pageSize: 10,
-        companyId: null,
         projectName: null,
-        projectType: null,
         num: null,
-        contents: null,
-        serviceCompany: null,
-        sData: null,
-        eData: null,
-        bData: null,
-        peoples: null,
-        top: null,
         state: null,
         orderByColumn: 'id',
         isAsc: 'desc'
@@ -94,6 +97,10 @@ export default {
   },
   methods: {
     getList() {
+      if (this.dateRange) {
+        this.queryParams.dateBegin = this.dateRange[0];
+        this.queryParams.dateEnd = this.dateRange[1];
+      }
       this.ajax({ url: '/work/project/list', data: this.queryParams }).then((response) => {
         this.response = response;
       });
@@ -104,6 +111,7 @@ export default {
     },
     resetQuery() {
       this.resetForm('queryForm');
+      this.dateRange = [];
       this.handleQuery();
     },
     selects(rows) {
@@ -111,11 +119,15 @@ export default {
     },
     op(tag, row) {
       if (tag == 'add') {
-        this.iframe({ obj: edit, param: {}, title: '新增项目', width: '60%', height: '70%' });
+        this.iframe({ obj: edit, param: {}, title: '新增项目', width: '55%', height: '55%' });
+        return;
+      }
+      const id = row.id || this.ids[0];
+      if (tag == 'detail') {
+        this.iframe({ obj: edit, param: { id: id, detail: true }, title: '项目详情', width: '55%', height: '55%' });
       }
       if (tag == 'edit') {
-        const id = row.id || this.ids[0];
-        this.iframe({ obj: edit, param: { id: id }, title: '编辑项目', width: '60%', height: '70%' });
+        this.iframe({ obj: edit, param: { id: id }, title: '编辑项目', width: '55%', height: '55%' });
       }
     },
     del(row) {

+ 1 - 1
app/App.vue

@@ -30,7 +30,7 @@ button::after {
 /**挂载iconfont字体图标*/
 @font-face {
 	font-family: 'iconfont';
-	src: url('https://at.alicdn.com/t/c/font_4507607_40lcs8zgflp.ttf?t=1713173321303') format('truetype');
+	src: url('https://at.alicdn.com/t/c/font_4507607_jjjyuj383v.ttf?t=1713419783467') format('truetype');
 	/* src: url('~@/static/font/iconfont.ttf') format('truetype'); */
 }
 .icon {

+ 14 - 2
app/common/common.scss

@@ -40,6 +40,7 @@
 }
 .r {
 	width: 100%;
+	overflow: hidden;
 }
 .r10 {
 	width: 10%;
@@ -88,7 +89,7 @@
 .btn {
 	color: white;
 	background-color: $main-color;
-	border-radius: 7px;
+	border-radius: 30px;
 	font-size: 14px;
 	text-align: center;
 	padding: 5px;
@@ -106,7 +107,6 @@
 		font-size: 15px;
 		text-align: left;
 		position: relative;
-		font-weight: bold;
 		float: left;
 		color: $font-c;
 		margin-top: 7px;
@@ -221,4 +221,16 @@
 			margin-top: 10px;
 		}
 	}
+}
+.tips{
+	font-size: 13px;
+	background-color:$bg;
+	padding: 8px;
+	color: $main-color;
+	overflow: hidden;
+	.icon{
+		font-size: 17px;
+		float: left;
+		padding-right: 3px;
+	}
 }

+ 39 - 26
app/components/card/card.vue

@@ -1,19 +1,25 @@
 <!--证件照片上传(单张)-->
 <template>
-	<view class="sfz" @click="chooseImage()" :style="{ border: fileName ? '' : '1px solid #eeeeee' }">
-		<image :src="ip + fileName" mode="widthFix" v-if="fileName"></image>
-		<view class="uploads" v-else>
-			<view class="bw">
-				<text class="icon">&#xe602;</text>
-				<view class="text">选择图片</view>
+	<view class="msf">
+		<view class="sfz" @click="chooseImage()" :style="{ border: fileName ? '' : '1px solid #eeeeee' }">
+			<image :src="ip + fileName" mode="widthFix" v-if="fileName"></image>
+			<view class="uploads" v-else>
+				<view class="icon" v-html="icon"></view>
 			</view>
 		</view>
+		<view class="text">{{ text }}</view>
 	</view>
 </template>
 <script>
 export default {
 	name: 'card',
 	props: {
+		icon: {
+			type: String
+		},
+		text: {
+			type: String
+		},
 		value: {
 			type: String
 		},
@@ -39,15 +45,15 @@ export default {
 			uni.chooseImage({
 				count: 1, //默认9
 				sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
-				success: res => {
-					res.tempFilePaths.forEach(path => {
+				success: (res) => {
+					res.tempFilePaths.forEach((path) => {
 						uni.showLoading({ title: '正在上传图片', mask: true });
 						uni.uploadFile({
 							url: this.http.ip + '/app/common/upload',
 							filePath: path,
 							name: 'file',
 							header: { Authorization: this.getUser().token },
-							success: res => {
+							success: (res) => {
 								let data = JSON.parse(res.data);
 								if (data.code == 200) {
 									this.fileName = data.fileName;
@@ -57,7 +63,7 @@ export default {
 								}
 								uni.hideLoading();
 							},
-							fail: res => {
+							fail: (res) => {
 								uni.hideLoading();
 								uni.showModal({ content: '图片上传失败', showCancel: false });
 							}
@@ -71,7 +77,7 @@ export default {
 			uni.previewImage({
 				urls: [this.ip + item],
 				current: this.ip + item,
-				success: res => {}
+				success: (res) => {}
 			});
 		},
 		del(item) {
@@ -84,27 +90,34 @@ export default {
 </script>
 
 <style lang="scss" scoped>
-.sfz {
+.msf {
+	padding: 0px 5px 5px 5px;
 	text-align: center;
-	border-radius: 5px;
-	margin-top: 10px;
-	overflow: hidden;
-	image {
-		width: 100%;
-		margin: 0 auto;
-		border-radius: 5px;
-	}
-	.uploads {
-		width: 100%;
+	.sfz {
 		text-align: center;
-		.bw {
-			padding: 20px;
+		border-radius: 5px;
+		overflow: hidden;
+		background-color: $bg;
+		height: 100px;
+		image {
+			width: 100%;
+			margin: 0 auto;
+			border-radius: 5px;
+		}
+		.uploads {
+			width: 100%;
+			text-align: center;
 			.icon {
 				font-size: 50px;
-			}
-			.text {
+				line-height: 100px;
+				color: $main-color;
 			}
 		}
 	}
+	.text {
+		font-size: 14px;
+		padding-top: 15px;
+		color: $main-color;
+	}
 }
 </style>

+ 1 - 1
app/manifest.json

@@ -91,7 +91,7 @@
     "quickapp" : {},
     /* 小程序特有相关 */
     "mp-weixin" : {
-        "appid" : "wx25d3f9356f5fdf80",
+        "appid" : "wxf07c98cd41e54b21",
         "setting" : {
             "urlCheck" : false,
             "minified" : true

+ 1 - 1
app/pages.json

@@ -37,7 +37,7 @@
 			"path" : "pages/authentication/index",
 			"style" : 
 			{
-				"navigationBarTitleText" : "授权认证",
+				"navigationBarTitleText" : "实名认证",
 				"enablePullDownRefresh" : false
 			}
 		}

+ 32 - 12
app/pages/authentication/index.vue

@@ -1,18 +1,31 @@
 <template>
-	<view class="main">
-		<view class="form">
-			<view class="form_group">
-				<view class="lable re">姓名</view>
-				<input type="text" placeholder="请输入姓名" v-model="item.name" />
+	<view>
+		<view class="tips">
+			<text class="icon">&#xe634;</text>
+			<text>为保障资金安全,用户需进行实名认证,请务必认真填写</text>
+		</view>
+		<view class="main">
+			<view class="form">
+				<view class="form_group">
+					<view class="lable re">姓名</view>
+					<input type="text" placeholder="请输入姓名" v-model="item.name" />
+				</view>
+				<view class="form_group">
+					<view class="lable re">身份证</view>
+					<input type="text" placeholder="请输入姓名" v-model="item.idCard" />
+				</view>
 			</view>
-			<view class="form_group">
-				<view class="lable re">身份证</view>
-				<input type="text" placeholder="请输入姓名" v-model="item.idCard" />
+			<u-divider text="上传本人二代身份证"></u-divider>
+			<view class="r">
+				<view class="r50">
+					<card v-model="item.p1" text="点击拍摄/上传人像面" icon="&#xe690;"></card>
+				</view>
+				<view class="r50">
+					<card v-model="item.p2" text="点击拍摄/上传国徽面" icon="&#xe61f;"></card>
+				</view>
 			</view>
+			<button class="btn" @click="save()">确定</button>
 		</view>
-		<card v-model="item.p1"></card>
-		<card v-model="item.p2"></card>
-		<button class="btn" @click="save()">确定</button>
 	</view>
 </template>
 
@@ -23,6 +36,9 @@ export default {
 			item: {}
 		};
 	},
+	onLoad() {
+          		
+	},
 	methods: {
 		save() {
 			let rule = [
@@ -55,4 +71,8 @@ export default {
 };
 </script>
 
-<style lang="scss"></style>
+<style lang="scss">
+.btn {
+	margin-top: 30px;
+}
+</style>

+ 1 - 1
app/pages/index/index.vue

@@ -94,7 +94,7 @@ export default {
 
 <style lang="scss">
 .main {
-	padding: 15px;
+	padding:5px 15px 15px 15px;
 }
 .banner {
 }

+ 5 - 4
app/pages/user/index.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="main">
 		<view class="user" @click="go('/pages/user/info')">
-			<image :src="user.avatarUrl ? user.avatarUrl : '../../static/ls.jpg'" class="head"></image>
+			<image :src="user.avatarUrl ? user.avatarUrl : '../../static/favicon.png'" class="head"></image>
 			<view class="con" v-if="user.token">
 				<view class="nickName">微信用户</view>
 				<view class="welcome">欢迎使用承揽时代</view>
@@ -44,8 +44,8 @@ export default {
 		};
 	},
 	onShow() {
-		/* this.user = {
-			token: 'eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjE3ZjY5MGU4LWQzNTEtNGY0MC1iOTJkLTgxNzllNTBkMjZlOSJ9.1TxPDq_H7hgT_WImyS72h4Jn5uuoTZJrMYiPN8s6ffQ8BtjH9EyoRjop82R6qTTWNKDZCffShELZOn8wdBiWdA'
+		 /* this.user = {
+			token: 'eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImU3ZDZmYWZkLTY2YzQtNDAwMC1iOTgyLWFjZWI3ZmEyNzU2NyJ9.Vl0vxvIzabGbBRSlMziU4EhoLEU-qHnOL_oQsLxwxMhxEecw2hYixMlgebTLR80OzaNaVUXrNrzCw0shAe-h6g'
 		};
 		uni.setStorageSync('user', this.user); */
 		if (this.hasLogin()) {
@@ -104,7 +104,8 @@ export default {
 		}
 		.welcome {
 			font-size: 13px;
-			padding-top: 2px;
+			padding-top: 5px;
+			color: #989898;
 		}
 	}
 	.icon {

+ 1 - 1
app/pages/user/login.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="bg">
-		<view class="p"><image src="../../static/ls.jpg" class="pic" mode="widthFix"></image></view>
+		<view class="p"><image src="../../static/favicon.png" class="pic" mode="widthFix"></image></view>
 		<view class="title">承揽时代:</view>
 		<view class="info">您的公开信息(昵称,头像等)</view>
 		<button class="btn" @click="getUserProfile()" :disabled="disabled">微信一键登录</button>

BIN
app/static/favicon.png


BIN
app/static/ls.jpg


+ 1 - 0
app/uni.scss

@@ -7,6 +7,7 @@ $line: #eeeeee;
 $main-color:#4581fb;
 $font-c:#545555;
 $font-c1:#333;
+$bg:#e6ebfb;
 $border-radius:5px;
 
 @import '@/uni_modules/uview-ui/theme.scss';

+ 7 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/work/domain/Project.java

@@ -74,5 +74,12 @@ public class Project{
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date updateTime;
 
+    //开始日期
+    @TableField(exist = false)
+    private String dateBegin;
+
+    //结束日期
+    @TableField(exist = false)
+    private String dateEnd;
 
 }

+ 2 - 2
ruoyi-admin/src/main/resources/application.yml

@@ -91,8 +91,8 @@ spring:
         max-wait: -1ms
 # 微信小程序/公众号配置
 wx:
-  appid: wx25d3f9356f5fdf80
-  appSecret: bc8c7fa9e7039cd2d5ec9d19d9e1a421
+  appid: wxf07c98cd41e54b21
+  appSecret: a60a0bf86da49760f6f13a54c8a735a7
 # token配置
 token:
   # 令牌自定义标识

+ 2 - 9
ruoyi-admin/src/main/resources/mapper/work/ProjectMapper.xml

@@ -9,16 +9,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <where>  
             <if test="companyId != null "> and company_id = #{companyId}</if>
             <if test="projectName != null  and projectName != ''"> and project_name like concat('%', #{projectName}, '%')</if>
-            <if test="projectType != null "> and project_type = #{projectType}</if>
-            <if test="num != null  and num != ''"> and num = #{num}</if>
-            <if test="contents != null  and contents != ''"> and contents = #{contents}</if>
-            <if test="serviceCompany != null  and serviceCompany != ''"> and service_company = #{serviceCompany}</if>
-            <if test="sData != null "> and s_data = #{sData}</if>
-            <if test="eData != null "> and e_data = #{eData}</if>
-            <if test="bData != null "> and b_data = #{bData}</if>
-            <if test="peoples != null "> and peoples = #{peoples}</if>
-            <if test="top != null "> and top = #{top}</if>
+            <if test="num != null  and num != ''"> and num like concat('%', #{num}, '%') </if>
             <if test="state != null "> and state = #{state}</if>
+            <if test="dateBegin != null  and dateBegin != ''"> AND create_time BETWEEN #{dateBegin} AND #{dateEnd} + INTERVAL 1 DAY</if>
         </where>
     </select>