lsw 10 ヶ月 前
コミット
72de7f0e88

+ 68 - 74
admin-ui/src/views/work/enterprise/edit.vue

@@ -1,61 +1,52 @@
 <template>
   <div class="cmain">
-      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
-        <el-form-item label="公司名称" prop="name">
-          <el-input v-model="form.name" placeholder="请输入公司名称" clearable/>
-        </el-form-item>
-        <el-form-item label="电话" prop="phone">
-          <el-input v-model="form.phone" placeholder="请输入电话" clearable/>
-        </el-form-item>
-        <el-form-item label="法定代表人" prop="legalPerson">
-          <el-input v-model="form.legalPerson" placeholder="请输入法定代表人" clearable/>
-        </el-form-item>
-        <el-form-item label="邮箱" prop="email">
-          <el-input v-model="form.email" placeholder="请输入邮箱" clearable/>
-        </el-form-item>
-        <el-form-item label="注册资本" prop="capital">
-          <el-input v-model="form.capital" placeholder="请输入注册资本" clearable/>
-        </el-form-item>
-        <el-form-item label="成立日期" prop="createDate">
-          <el-input v-model="form.createDate" placeholder="请输入成立日期" clearable/>
-        </el-form-item>
-        <el-form-item label="地址" prop="address">
-          <el-input v-model="form.address" placeholder="请输入地址" clearable/>
-        </el-form-item>
-        <el-form-item label="简介" prop="contents">
-          <el-input v-model="form.contents" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-        <el-form-item label="营业执照" prop="p1">
-          <el-input v-model="form.p1" placeholder="请输入营业执照" clearable/>
-        </el-form-item>
-        <el-form-item label="认证不通过原因" prop="msg">
-          <el-input v-model="form.msg" placeholder="请输入认证不通过原因" clearable/>
-        </el-form-item>
-        <el-form-item label="认证  0未认证 1已认证  2认证不通过" prop="state">
-          <el-input v-model="form.state" placeholder="请输入认证  0未认证 1已认证  2认证不通过" clearable/>
-        </el-form-item>
-        <el-form-item label="创建时间" prop="createTime">
-          <el-date-picker clearable
-            v-model="form.createTime"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="请选择创建时间">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item label="更新时间" prop="updateTime">
-          <el-date-picker clearable
-            v-model="form.updateTime"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="请选择更新时间">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item label="企业logo" prop="logo">
-          <el-input v-model="form.logo" placeholder="请输入企业logo" clearable/>
-        </el-form-item>
-      </el-form>
-    <div class="mfooter">
-      <el-button type="primary" @click="submitForm">确 定</el-button>
+    <el-form ref="form" :model="form" :disabled="param.detail" :rules="rules" label-width="100px">
+      <el-row>
+        <el-col :span="12">
+          <el-form-item label="企业名称" prop="name">
+            <el-input v-model="form.name" placeholder="请输入公司名称" />
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="法定代表人" prop="legalPerson">
+            <el-input v-model="form.legalPerson" placeholder="请输入法定代表人" />
+          </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="请输入电话" />
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="企业邮箱" prop="email">
+            <el-input v-model="form.email" placeholder="请输入邮箱" />
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="12">
+          <el-form-item label="注册资本" prop="capital">
+            <el-input v-model="form.capital" placeholder="请输入注册资本" />
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="企业地址" prop="address">
+            <el-input v-model="form.address" placeholder="请输入地址" />
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-form-item label="企业简介" prop="contents">
+        <el-input v-model="form.contents" type="textarea" rows="4" placeholder="请输入内容" />
+      </el-form-item>
+      <el-form-item label="营业执照" prop="p1">
+        <el-image :fit="'contain'" class="sfz" style="max-height: 150px; width: 30%" :z-index="50000" :src="baseUrl + form.p1" :preview-src-list="[baseUrl + form.p1]"></el-image>
+      </el-form-item>
+    </el-form>
+    <div class="mfooter" v-if="form.state == 0">
+      <el-button type="primary" @click="submitForm(1)">认证通过</el-button>
+      <el-button type="danger" @click="submitForm(2)">认证不通过</el-button>
       <el-button @click="$layer.close(layerid)">取 消</el-button>
     </div>
   </div>
@@ -66,8 +57,7 @@ export default {
   data() {
     return {
       form: {},
-      rules: {
-      }
+      rules: {}
     };
   },
   props: {
@@ -83,28 +73,32 @@ export default {
   },
   mounted() {
     if (this.param.id) {
-      this.ajax({ url: '/work/enterprise/detail/' + this.param.id }).then(response => {
+      this.ajax({ url: '/work/enterprise/detail/' + this.param.id }).then((response) => {
         this.form = response.data;
       });
     }
   },
   methods: {
-    submitForm() {
-      this.$refs["form"].validate(valid => {
+    submitForm(state) {
+      this.$refs['form'].validate((valid) => {
         if (valid) {
-          if (this.form.id) {
-              this.ajax({method: 'post',url: '/work/enterprise/edit', data: this.form }).then(response => {
-                  this.$modal.msgSuccess("修改成功");
-                  this.$layer.close(this.layerid);
-                  this.$parent.getList();
-              });
-          } else {
-              this.ajax({method: 'post',url: '/work/enterprise/add', data: this.form }).then(response => {
-                  this.$modal.msgSuccess("新增成功");
-                  this.$layer.close(this.layerid);
-                  this.$parent.getList();
-               });
-          }
+          this.$prompt(state == 1 ? '认证通过' : '认证不通过', {
+            type: 'warning',
+            showInput: state == 1 ? false : true,
+            inputType: 'textarea',
+            inputPlaceholder: '认证失败',
+            inputValidator: (value) => {
+              if (!value && state == 2) {
+                return '请输入认证失败原因';
+              }
+            }
+          }).then(({ value }) => {
+            this.post({ url: '/work/enterprise/edit', data: { id: this.form.id, state: state, msg: value } }).then((response) => {
+              this.$modal.msgSuccess('操作成功');
+              this.$layer.close(this.layerid);
+              this.$parent.getList();
+            });
+          });
         }
       });
     }

+ 72 - 78
admin-ui/src/views/work/enterprise/index.vue

@@ -1,38 +1,15 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" @submit.native.prevent v-show="showSearch">
-      <el-form-item label="公司名称" prop="name">
-        <el-input v-model="queryParams.name" placeholder="请输入公司名称"  @keyup.enter.native="handleQuery" clearable class="inp"/>
+      <el-form-item label="企业名称" prop="name">
+        <el-input v-model="queryParams.name" placeholder="请输入公司名称" @keyup.enter.native="handleQuery" clearable />
       </el-form-item>
-      <el-form-item label="电话" prop="phone">
-        <el-input v-model="queryParams.phone" placeholder="请输入电话"  @keyup.enter.native="handleQuery" clearable class="inp"/>
-      </el-form-item>
-      <el-form-item label="法定代表人" prop="legalPerson">
-        <el-input v-model="queryParams.legalPerson" placeholder="请输入法定代表人"  @keyup.enter.native="handleQuery" clearable class="inp"/>
-      </el-form-item>
-      <el-form-item label="邮箱" prop="email">
-        <el-input v-model="queryParams.email" placeholder="请输入邮箱"  @keyup.enter.native="handleQuery" clearable class="inp"/>
-      </el-form-item>
-      <el-form-item label="注册资本" prop="capital">
-        <el-input v-model="queryParams.capital" placeholder="请输入注册资本"  @keyup.enter.native="handleQuery" clearable class="inp"/>
-      </el-form-item>
-      <el-form-item label="成立日期" prop="createDate">
-        <el-input v-model="queryParams.createDate" placeholder="请输入成立日期"  @keyup.enter.native="handleQuery" clearable class="inp"/>
-      </el-form-item>
-      <el-form-item label="地址" prop="address">
-        <el-input v-model="queryParams.address" placeholder="请输入地址"  @keyup.enter.native="handleQuery" clearable class="inp"/>
-      </el-form-item>
-      <el-form-item label="营业执照" prop="p1">
-        <el-input v-model="queryParams.p1" placeholder="请输入营业执照"  @keyup.enter.native="handleQuery" clearable class="inp"/>
-      </el-form-item>
-      <el-form-item label="认证不通过原因" prop="msg">
-        <el-input v-model="queryParams.msg" placeholder="请输入认证不通过原因"  @keyup.enter.native="handleQuery" clearable class="inp"/>
-      </el-form-item>
-      <el-form-item label="认证  0未认证 1已认证  2认证不通过" prop="state">
-        <el-input v-model="queryParams.state" placeholder="请输入认证  0未认证 1已认证  2认证不通过"  @keyup.enter.native="handleQuery" clearable class="inp"/>
-      </el-form-item>
-      <el-form-item label="企业logo" prop="logo">
-        <el-input v-model="queryParams.logo" placeholder="请输入企业logo"  @keyup.enter.native="handleQuery" clearable class="inp"/>
+      <el-form-item label="状态" prop="state">
+        <el-select v-model="queryParams.state" placeholder="状态" clearable class="se">
+          <el-option value="0" label="待认证"></el-option>
+          <el-option value="1" label="认证通过"></el-option>
+          <el-option value="2" label="认证不通过"></el-option>
+        </el-select>
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
@@ -40,65 +17,83 @@
       </el-form-item>
     </el-form>
     <el-row :gutter="10" class="mb8">
-        <el-button type="primary" icon="el-icon-plus" :disabled="ids.length > 0" @click="op('add')" v-hasPermi="['work:enterprise:add']">新增</el-button>
-        <el-button type="success" icon="el-icon-edit" :disabled="ids.length != 1" @click="op('edit',ids)" v-hasPermi="['work:enterprise:edit']">修改</el-button>
-        <el-button type="danger" icon="el-icon-delete" :disabled="ids.length == 0" @click="del" v-hasPermi="['work:enterprise:remove']">删除{{ids.length>0?'('+ids.length+')':''}}</el-button>
-        <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      <el-button type="primary" icon="el-icon-plus" :disabled="ids.length > 0" @click="op('add')" v-hasPermi="['work:enterprise:add']">新增</el-button>
+      <el-button type="success" icon="el-icon-edit" :disabled="ids.length != 1" @click="op('edit', ids)" v-hasPermi="['work:enterprise:edit']">修改</el-button>
+      <el-button type="danger" icon="el-icon-delete" :disabled="ids.length == 0" @click="del" v-hasPermi="['work:enterprise:remove']">删除{{ ids.length > 0 ? '(' + ids.length + ')' : '' }}</el-button>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
     <el-table :data="response.rows" border @selection-change="selects" height="calc(100vh - 270px)">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="id" align="center" prop="id" />
       <el-table-column label="公司名称" align="center" prop="name" />
-      <el-table-column label="电话" align="center" prop="phone" />
       <el-table-column label="法定代表人" align="center" prop="legalPerson" />
+      <el-table-column label="电话" align="center" prop="phone" />
       <el-table-column label="邮箱" align="center" prop="email" />
-      <el-table-column label="注册资本" align="center" prop="capital" />
-      <el-table-column label="成立日期" align="center" prop="createDate" />
-      <el-table-column label="地址" align="center" prop="address" />
-      <el-table-column label="简介" align="center" prop="contents" />
-      <el-table-column label="营业执照" align="center" prop="p1" />
-      <el-table-column label="认证不通过原因" align="center" prop="msg" />
-      <el-table-column label="认证  0未认证 1已认证  2认证不通过" align="center" prop="state" />
-      <el-table-column label="企业logo" align="center" prop="logo" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+      <el-table-column label="注册资本" align="center" prop="capital" width="100" />
+      <el-table-column label="地址" align="center" prop="address">
+        <template slot-scope="scope">
+          <el-popover placement="top-start" title="地址" trigger="hover" width="400" :content="scope.row.address">
+            <div slot="reference">
+              <div class="omit">{{ scope.row.address }}</div>
+            </div>
+          </el-popover>
+        </template>
+      </el-table-column>
+      <el-table-column label="简介" align="center" prop="contents">
+        <template slot-scope="scope">
+          <el-popover placement="top-start" title="简介" trigger="hover" width="400" :content="scope.row.contents">
+            <div slot="reference">
+              <div class="omit">{{ scope.row.contents }}</div>
+            </div>
+          </el-popover>
+        </template>
+      </el-table-column>
+      <el-table-column label="营业执照" align="center" prop="p1">
+        <template slot-scope="scope">
+          <preview v-model="scope.row.p1"></preview>
+        </template>
+      </el-table-column>
+      <el-table-column label="是否认证" align="center" width="130">
         <template slot-scope="scope">
-          <el-button size="mini" type="text" icon="el-icon-edit" @click="op('edit',scope.row)" v-hasPermi="['work:enterprise:edit']">修改</el-button>
+          <el-tag type="danger" v-if="scope.row.state == 0">待认证</el-tag>
+          <el-tag type="success" v-if="scope.row.state == 1" :title="'充值时间:' + scope.row.updateTime">认证成功</el-tag>
+          <el-popover placement="top-start" v-if="scope.row.state == 2" title="原因" width="200" trigger="hover" :content="scope.row.msg">
+            <div slot="reference" :title="'操作时间:' + scope.row.updateTime">
+              <el-tag type="info">认证失败</el-tag>
+              <i class="el-icon-warning"></i>
+            </div>
+          </el-popover>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" width="180">
+        <template slot-scope="scope">
+          <el-button size="mini" type="text" icon="el-icon-view" @click="op('detail', scope.row)">详情</el-button>
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="op('audit', scope.row)" v-hasPermi="['work:enterprise:edit']" v-if="scope.row.state == 0">审核</el-button>
           <el-button size="mini" type="text" icon="el-icon-delete" @click="del(scope.row)" v-hasPermi="['work:enterprise:remove']">删除</el-button>
         </template>
       </el-table-column>
       <template slot="empty">
-          <el-empty></el-empty>
+        <el-empty></el-empty>
       </template>
     </el-table>
-    <pagination v-if="response.total>0" :total="response.total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>
+    <pagination v-if="response.total > 0" :total="response.total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
   </div>
 </template>
 
 <script>
-import edit from './edit'
+import edit from './edit';
 export default {
-  name: "Enterprise",
+  name: 'Enterprise',
   data() {
     return {
       ids: [],
-      showSearch:true,
+      showSearch: true,
       response: {},
       queryParams: {
         pageNum: 1,
         pageSize: 10,
         name: null,
-        phone: null,
-        legalPerson: null,
-        email: null,
-        capital: null,
-        createDate: null,
-        address: null,
-        contents: null,
-        p1: null,
-        msg: null,
         state: null,
-        logo: null
         orderByColumn: 'id',
         isAsc: 'desc'
       }
@@ -109,8 +104,8 @@ export default {
   },
   methods: {
     getList() {
-      this.ajax({ url: '/work/enterprise/list', data: this.queryParams }).then(response => {
-            this.response = response;
+      this.ajax({ url: '/work/enterprise/list', data: this.queryParams }).then((response) => {
+        this.response = response;
       });
     },
     handleQuery() {
@@ -118,28 +113,27 @@ export default {
       this.getList();
     },
     resetQuery() {
-      this.resetForm("queryForm");
+      this.resetForm('queryForm');
       this.handleQuery();
     },
     selects(rows) {
-      this.ids = rows.map(item => item.id)
+      this.ids = rows.map((item) => item.id);
     },
     op(tag, row) {
-          if (tag == 'add') {
-            this.iframe({ obj: edit, param: {}, title:'新增',width: '45%', height: '55%'});
-          }
-          if (tag == 'edit') {
-              const id = row.id || this.ids[0];
-              this.iframe({ obj: edit, param: {id: id}, title:'编辑',width: '50%', height: '50%'});
-          }
+      if (tag == 'detail') {
+        this.iframe({ obj: edit, param: { id: row.id, detail: true }, title: '企业详情', width: '50%', height: '65%' });
+      }
+      if (tag == 'audit') {
+        this.iframe({ obj: edit, param: { id: row.id, detail: true }, title: '审核', width: '50%', height: '65%' });
+      }
     },
     del(row) {
-        this.$confirm('是否确认删除选中数据?', '警告', { type: 'warning' }).then(() => {
-        this.get({ url: '/work/enterprise/remove/' + (row.id || this.ids) }).then(response => {
-                this.$modal.msgSuccess('删除成功');
-                this.getList();
-            });
+      this.$confirm('是否确认删除选中数据?', '警告', { type: 'warning' }).then(() => {
+        this.get({ url: '/work/enterprise/remove/' + (row.id || this.ids) }).then((response) => {
+          this.$modal.msgSuccess('删除成功');
+          this.getList();
         });
+      });
     }
   }
 };

+ 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_ia406jjud4i.ttf?t=1717494862112') format('truetype');
+	src: url('https://at.alicdn.com/t/c/font_4507607_1wv76dk9yht.ttf?t=1717641911266') format('truetype');
 	/* src: url('~@/static/font/iconfont.ttf') format('truetype'); */
 }
 .icon {

+ 13 - 2
app/common/common.scss

@@ -80,8 +80,6 @@
 	}
 	.bgm {
 		border: 1px solid $line;
-		color: white;
-		background-color: white;
 		border-radius: 5px;
 		margin-top: 12px;
 		position: relative;
@@ -129,6 +127,7 @@
 		height: 120px;
 		width: 93%;
 		border: 1px solid $line;
+		background-color: white;
 	}
 	.start {
 		flex: 1;
@@ -414,4 +413,16 @@
 			}
 		}
 	}
+}
+.message {
+	padding: 15px;
+	border-radius: 5px;
+	font-size: 14px;
+	color: $font-c;
+	margin-bottom: 10px;
+	background-color: white;
+	.icon {
+		padding-right: 3px;
+		font-size: 16px;
+	}
 }

+ 31 - 73
app/components/card/card.vue

@@ -1,31 +1,22 @@
 <!--证件照片上传(单张)-->
 <template>
-	<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 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">&#xe624;</text>
+				<view class="text">选择图片</view>
 			</view>
 		</view>
-		<view class="text" v-if="!read">{{ text }}</view>
 	</view>
 </template>
 <script>
 export default {
 	name: 'card',
 	props: {
-		icon: {
-			type: String
-		},
-		text: {
-			type: String
-		},
 		value: {
 			type: String
 		},
-		side: {
-			type: String
-		},
 		read: {
 			type: Boolean,
 			default: false
@@ -44,33 +35,29 @@ export default {
 	},
 	methods: {
 		chooseImage() {
-			if (this.read) {
-				this.preview(this.fileName);
-				return;
-			}
 			//照片选择
 			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.ip + '/app/common/upload',
+							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;
-									this.ocr({ imageUrl: this.ip + data.fileName, side: this.side });
+									this.$emit('input', data.fileName);
 								} else {
 									uni.showModal({ content: data.msg, showCancel: false });
 								}
 								uni.hideLoading();
 							},
-							fail: (res) => {
+							fail: res => {
 								uni.hideLoading();
 								uni.showModal({ content: '图片上传失败', showCancel: false });
 							}
@@ -79,37 +66,12 @@ export default {
 				}
 			});
 		},
-		ocr(item) {
-			this.http.request({
-				url: '/app/common/ocr',
-				data: item,
-				method: 'POST',
-				success: (res) => {
-					if (this.side == 'face') {
-						if (res.data.data) {
-							this.$emit('input', this.fileName);
-							this.$emit('success', { side: this.side, data: res.data.data });
-						} else {
-							uni.showModal({ content: '请上传正确的身份证人像面', showCancel: false });
-						}
-					}
-					if (this.side == 'back') {
-						if (res.data.data) {
-							this.$emit('input', this.fileName);
-							this.$emit('success', { side: this.side, data: res.data.data });
-						} else {
-							uni.showModal({ content: '请上传正确的身份证国徽面', showCancel: false });
-						}
-					}
-				}
-			});
-		},
 		// 预览图片
 		preview(item) {
 			uni.previewImage({
 				urls: [this.ip + item],
 				current: this.ip + item,
-				success: (res) => {}
+				success: res => {}
 			});
 		},
 		del(item) {
@@ -122,34 +84,30 @@ export default {
 </script>
 
 <style lang="scss" scoped>
-.msf {
-	padding: 0px 5px 5px 5px;
+.sfz {
 	text-align: center;
-	.sfz {
-		text-align: center;
+	border-radius: 5px;
+	margin-top: 10px;
+	color: $font-c;
+	overflow: hidden;
+	background-color: white;
+	image {
+		width: 100%;
+		margin: 0 auto;
 		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;
+	}
+	.uploads {
+		width: 100%;
+		text-align: center;
+		.bw {
+			padding: 20px;
 			.icon {
 				font-size: 50px;
-				line-height: 100px;
-				color: $main-color;
+			}
+			.text {
+				color: $font-c;
 			}
 		}
 	}
-	.text {
-		font-size: 14px;
-		padding-top: 15px;
-		color: $main-color;
-	}
 }
 </style>

+ 155 - 0
app/components/ocr/ocr.vue

@@ -0,0 +1,155 @@
+<!--证件照片上传(单张)-->
+<template>
+	<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" v-if="!read">{{ text }}</view>
+	</view>
+</template>
+<script>
+export default {
+	name: 'card',
+	props: {
+		icon: {
+			type: String
+		},
+		text: {
+			type: String
+		},
+		value: {
+			type: String
+		},
+		side: {
+			type: String
+		},
+		read: {
+			type: Boolean,
+			default: false
+		}
+	},
+	data() {
+		return {
+			fileName: this.value,
+			ip: this.http.ip
+		};
+	},
+	watch: {
+		value(newValue) {
+			this.fileName = newValue;
+		}
+	},
+	methods: {
+		chooseImage() {
+			if (this.read) {
+				this.preview(this.fileName);
+				return;
+			}
+			//照片选择
+			uni.chooseImage({
+				count: 1, //默认9
+				sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
+				success: (res) => {
+					res.tempFilePaths.forEach((path) => {
+						uni.showLoading({ title: '正在上传图片', mask: true });
+						uni.uploadFile({
+							url: this.ip + '/app/common/upload',
+							filePath: path,
+							name: 'file',
+							header: { Authorization: this.getUser().token },
+							success: (res) => {
+								let data = JSON.parse(res.data);
+								if (data.code == 200) {
+									this.fileName = data.fileName;
+									this.ocr({ imageUrl: this.ip + data.fileName, side: this.side });
+								} else {
+									uni.showModal({ content: data.msg, showCancel: false });
+								}
+								uni.hideLoading();
+							},
+							fail: (res) => {
+								uni.hideLoading();
+								uni.showModal({ content: '图片上传失败', showCancel: false });
+							}
+						});
+					});
+				}
+			});
+		},
+		ocr(item) {
+			this.http.request({
+				url: '/app/common/ocr',
+				data: item,
+				method: 'POST',
+				success: (res) => {
+					if (this.side == 'face') {
+						if (res.data.data) {
+							this.$emit('input', this.fileName);
+							this.$emit('success', { side: this.side, data: res.data.data });
+						} else {
+							uni.showModal({ content: '请上传正确的身份证人像面', showCancel: false });
+						}
+					}
+					if (this.side == 'back') {
+						if (res.data.data) {
+							this.$emit('input', this.fileName);
+							this.$emit('success', { side: this.side, data: res.data.data });
+						} else {
+							uni.showModal({ content: '请上传正确的身份证国徽面', showCancel: false });
+						}
+					}
+				}
+			});
+		},
+		// 预览图片
+		preview(item) {
+			uni.previewImage({
+				urls: [this.ip + item],
+				current: this.ip + item,
+				success: (res) => {}
+			});
+		},
+		del(item) {
+			this.value.splice(this.value.indexOf(item), 1);
+			this.$emit('input', this.value);
+			this.$forceUpdate();
+		}
+	}
+};
+</script>
+
+<style lang="scss" scoped>
+.msf {
+	padding: 0px 5px 5px 5px;
+	text-align: center;
+	.sfz {
+		text-align: center;
+		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;
+				line-height: 100px;
+				color: $main-color;
+			}
+		}
+	}
+	.text {
+		font-size: 14px;
+		padding-top: 15px;
+		color: $main-color;
+	}
+}
+</style>

+ 121 - 120
app/manifest.json

@@ -1,121 +1,122 @@
 {
-    "name" : "国医瑾明",
-    "appid" : "__UNI__6E1FB4F",
-    "description" : "",
-    "versionName" : "1.0.3",
-    "versionCode" : 103,
-    "transformPx" : false,
-    /* 5+App特有相关 */
-    "app-plus" : {
-        "usingComponents" : true,
-        "nvueStyleCompiler" : "uni-app",
-        "compilerVersion" : 3,
-        "splashscreen" : {
-            "alwaysShowBeforeRender" : true,
-            "waiting" : true,
-            "autoclose" : true,
-            "delay" : 0
-        },
-        /* 模块配置 */
-        "modules" : {
-            "VideoPlayer" : {},
-            "Camera" : {}
-        },
-        /* 应用发布信息 */
-        "distribute" : {
-            /* android打包配置 */
-            "android" : {
-                "permissions" : [
-                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
-                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
-                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
-                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
-                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
-                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
-                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
-                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
-                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
-                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
-                    "<uses-feature android:name=\"android.hardware.camera\"/>",
-                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
-                    "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />",
-                    "<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" />"
-                ]
-            },
-            /* ios打包配置 */
-            "ios" : {
-                "dSYMs" : false
-            },
-            /* SDK配置 */
-            "sdkConfigs" : {
-                "ad" : {},
-                "maps" : {
-                    "amap" : {
-                        "name" : "clsd",
-                        "appkey_ios" : "",
-                        "appkey_android" : ""
-                    }
-                }
-            },
-            "icons" : {
-                "android" : {
-                    "hdpi" : "unpackage/res/icons/72x72.png",
-                    "xhdpi" : "unpackage/res/icons/96x96.png",
-                    "xxhdpi" : "unpackage/res/icons/144x144.png",
-                    "xxxhdpi" : "unpackage/res/icons/192x192.png"
-                },
-                "ios" : {
-                    "appstore" : "unpackage/res/icons/1024x1024.png",
-                    "ipad" : {
-                        "app" : "unpackage/res/icons/76x76.png",
-                        "app@2x" : "unpackage/res/icons/152x152.png",
-                        "notification" : "unpackage/res/icons/20x20.png",
-                        "notification@2x" : "unpackage/res/icons/40x40.png",
-                        "proapp@2x" : "unpackage/res/icons/167x167.png",
-                        "settings" : "unpackage/res/icons/29x29.png",
-                        "settings@2x" : "unpackage/res/icons/58x58.png",
-                        "spotlight" : "unpackage/res/icons/40x40.png",
-                        "spotlight@2x" : "unpackage/res/icons/80x80.png"
-                    },
-                    "iphone" : {
-                        "app@2x" : "unpackage/res/icons/120x120.png",
-                        "app@3x" : "unpackage/res/icons/180x180.png",
-                        "notification@2x" : "unpackage/res/icons/40x40.png",
-                        "notification@3x" : "unpackage/res/icons/60x60.png",
-                        "settings@2x" : "unpackage/res/icons/58x58.png",
-                        "settings@3x" : "unpackage/res/icons/87x87.png",
-                        "spotlight@2x" : "unpackage/res/icons/80x80.png",
-                        "spotlight@3x" : "unpackage/res/icons/120x120.png"
-                    }
-                }
-            }
-        }
-    },
-    /* 快应用特有相关 */
-    "quickapp" : {},
-    /* 小程序特有相关 */
-    "mp-weixin" : {
-        "appid" : "wxf07c98cd41e54b21",
-        "setting" : {
-            "urlCheck" : false,
-            "minified" : true
-        },
-        "usingComponents" : true
-    },
-    "mp-alipay" : {
-        "usingComponents" : true
-    },
-    "mp-baidu" : {
-        "usingComponents" : true
-    },
-    "mp-toutiao" : {
-        "usingComponents" : true
-    },
-    "uniStatistics" : {
-        "enable" : false
-    },
-    "vueVersion" : "2"
-}
+	"name": "国医瑾明",
+	"appid": "__UNI__6E1FB4F",
+	"description": "",
+	"versionName": "1.0.3",
+	"versionCode": 103,
+	"transformPx": false,
+	/* 5+App特有相关 */
+	"app-plus": {
+		"usingComponents": true,
+		"nvueStyleCompiler": "uni-app",
+		"compilerVersion": 3,
+		"splashscreen": {
+			"alwaysShowBeforeRender": true,
+			"waiting": true,
+			"autoclose": true,
+			"delay": 0
+		},
+		/* 模块配置 */
+		"modules": {
+			"VideoPlayer": {},
+			"Camera": {}
+		},
+		/* 应用发布信息 */
+		"distribute": {
+			/* android打包配置 */
+			"android": {
+				"permissions": [
+					"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+					"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+					"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+					"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+					"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+					"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+					"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+					"<uses-permission android:name=\"android.permission.CAMERA\"/>",
+					"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+					"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+					"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+					"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+					"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+					"<uses-feature android:name=\"android.hardware.camera\"/>",
+					"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
+					"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\" />",
+					"<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\" />"
+				]
+			},
+			/* ios打包配置 */
+			"ios": {
+				"dSYMs": false
+			},
+			/* SDK配置 */
+			"sdkConfigs": {
+				"ad": {},
+				"maps": {
+					"amap": {
+						"name": "clsd",
+						"appkey_ios": "",
+						"appkey_android": ""
+					}
+				}
+			},
+			"icons": {
+				"android": {
+					"hdpi": "unpackage/res/icons/72x72.png",
+					"xhdpi": "unpackage/res/icons/96x96.png",
+					"xxhdpi": "unpackage/res/icons/144x144.png",
+					"xxxhdpi": "unpackage/res/icons/192x192.png"
+				},
+				"ios": {
+					"appstore": "unpackage/res/icons/1024x1024.png",
+					"ipad": {
+						"app": "unpackage/res/icons/76x76.png",
+						"app@2x": "unpackage/res/icons/152x152.png",
+						"notification": "unpackage/res/icons/20x20.png",
+						"notification@2x": "unpackage/res/icons/40x40.png",
+						"proapp@2x": "unpackage/res/icons/167x167.png",
+						"settings": "unpackage/res/icons/29x29.png",
+						"settings@2x": "unpackage/res/icons/58x58.png",
+						"spotlight": "unpackage/res/icons/40x40.png",
+						"spotlight@2x": "unpackage/res/icons/80x80.png"
+					},
+					"iphone": {
+						"app@2x": "unpackage/res/icons/120x120.png",
+						"app@3x": "unpackage/res/icons/180x180.png",
+						"notification@2x": "unpackage/res/icons/40x40.png",
+						"notification@3x": "unpackage/res/icons/60x60.png",
+						"settings@2x": "unpackage/res/icons/58x58.png",
+						"settings@3x": "unpackage/res/icons/87x87.png",
+						"spotlight@2x": "unpackage/res/icons/80x80.png",
+						"spotlight@3x": "unpackage/res/icons/120x120.png"
+					}
+				}
+			}
+		}
+	},
+	/* 快应用特有相关 */
+	"quickapp": {},
+	/* 小程序特有相关 */
+	"mp-weixin": {
+		"appid": "wxf07c98cd41e54b21",
+		"setting": {
+			"urlCheck": false,
+			"minified": true
+		},
+		"usingComponents": true,
+		"requiredPrivateInfos": ["chooseLocation", "getLocation"]
+	},
+	"mp-alipay": {
+		"usingComponents": true
+	},
+	"mp-baidu": {
+		"usingComponents": true
+	},
+	"mp-toutiao": {
+		"usingComponents": true
+	},
+	"uniStatistics": {
+		"enable": false
+	},
+	"vueVersion": "2"
+}

+ 1 - 1
app/pages.json

@@ -144,7 +144,7 @@
 			}
 		},
 		{
-			"path" : "pages/user/enterprise/edit",
+			"path" : "pages/user/enterprise/index",
 			"style" : 
 			{
 				"navigationBarTitleText" : "企业认证"

+ 18 - 54
app/pages/user/enterprise/edit.vue → app/pages/user/enterprise/index.vue

@@ -1,71 +1,47 @@
 <template>
-	<view class="cmain">
-		<view class="message" v-if="!item.id">需要认证企业信息通过后才能显示</view>
-		<view class="message" v-if="item.state == 0">后台审核信息中...</view>
+	<view class="main">
+		<view class="message" v-if="item.state == 0 && item.updateTime">后台审核信息中...</view>
 		<view class="message" v-if="item.state == 1">审核信息通过</view>
 		<view class="message" v-if="item.state == 2">
 			<view>信息审核失败:</view>
 			<view class="msg">{{ item.msg }}</view>
 		</view>
 		<view class="bos">
-			<u-divider text="企业信息" style="margin: 0px"></u-divider>
 			<view class="form_group">
 				<view class="lable re">企业名称</view>
-				<input type="text" placeholder="请输入企业名称" v-model="item.name" placeholder-class="pc" />
-			</view>
-			<view class="form_group">
-				<view class="lable">信用代码</view>
-				<input type="text" placeholder="请输入信用代码" v-model="item.code" placeholder-class="pc" />
+				<input type="text" placeholder="请输入企业名称" v-model="item.name" :disabled="item.state == 1" />
 			</view>
 			<view class="form_group">
 				<view class="lable re">法定代表人</view>
-				<input type="text" placeholder="请输入法定代表人" v-model="item.legalPerson" placeholder-class="pc" />
+				<input type="text" placeholder="请输入法定代表人" v-model="item.legalPerson" :disabled="item.state == 1" />
 			</view>
 			<view class="form_group">
 				<view class="lable re">电话</view>
-				<input type="number" placeholder="请输入电话" v-model="item.phone" placeholder-class="pc" />
+				<input type="number" placeholder="请输入电话" v-model="item.phone" :disabled="item.state == 1" />
 			</view>
 			<view class="form_group">
 				<view class="lable re">邮箱</view>
-				<input type="text" placeholder="请输入邮箱" v-model="item.email" placeholder-class="pc" />
+				<input type="text" placeholder="请输入邮箱" v-model="item.email" :disabled="item.state == 1" />
 			</view>
 			<view class="form_group">
 				<view class="lable re">注册资本(万)</view>
-				<input type="number" placeholder="请输入注册资本" v-model="item.capital" placeholder-class="pc" />
-			</view>
-			<view class="form_group">
-				<view class="lable re">人员规模</view>
-				<picker :range="dict.nums" @change="picker($event, 'nums')">
-					<input placeholder="请选择人员规模" v-model="item.nums" :disabled="true" placeholder-class="pc" />
-					<view class="icon more">&#xe8f2;</view>
-				</picker>
-			</view>
-			<view class="form_group">
-				<view class="lable re">成立日期</view>
-				<picker mode="date" fields="date" :end="end" @change="picker($event, 'createDate')">
-					<input placeholder="请选择成立日期" v-model="item.createDate" :disabled="true" placeholder-class="pc" />
-					<view class="icon more">&#xe8f2;</view>
-				</picker>
+				<input type="number" placeholder="请输入注册资本" v-model="item.capital" :disabled="item.state == 1" />
 			</view>
 			<view class="form_group">
 				<view class="lable re">企业地址</view>
 				<view class="bgm">
-					<input type="text" placeholder="请输入详细地址" v-model="item.address" placeholder-class="pc" class="input" />
+					<input type="text" placeholder="请输入详细地址" v-model="item.address" :disabled="item.state == 1" class="input" />
 					<view class="msg" @click="select()">选择</view>
 				</view>
 			</view>
 			<view class="form_group" style="border: 0px">
 				<view class="lable re">企业简介</view>
-				<textarea cols="30" rows="10" placeholder="请输入企业简介" v-model="item.contents" placeholder-class="pc"></textarea>
+				<textarea cols="30" rows="10" placeholder="请输入企业简介" v-model="item.contents" :disabled="item.state == 1"></textarea>
 			</view>
 			<view class="form_group" style="border: 0px">
 				<view class="lable re">营业执照</view>
 				<card v-model="item.p1"></card>
 			</view>
-			<view class="form_group" style="border: 0px">
-				<view class="lable re">企业照片</view>
-				<card v-model="item.avatar"></card>
-			</view>
 		</view>
 		<button class="btn" @click="save()" v-if="item.state != 1">{{ item.id ? '编辑' : '提交' }}</button>
 	</view>
@@ -76,17 +52,13 @@ export default {
 	data() {
 		return {
 			ip: this.http.ip,
-			end: this.util.getDate('day'),
-			dict: {
-				nums: this.util.getData('nums')
-			},
 			item: {}
 		};
 	},
 	onLoad() {
 		this.http.request({
-			url: '/app/company/detail',
-			success: res => {
+			url: '/app/enterprise/index',
+			success: (res) => {
 				if (res.data.data) {
 					this.item = res.data.data;
 				}
@@ -94,18 +66,12 @@ export default {
 		});
 	},
 	methods: {
-		picker(e, tag) {
-			if (tag == 'createDate') {
-				this.item[tag] = e.detail.value;
-			} else {
-				this.item[tag] = this.dict[tag][e.detail.value];
-			}
-			this.$forceUpdate();
-		},
 		select() {
 			uni.chooseLocation({
-				success: res => {
+				success: (res) => {
 					this.item.address = res.address;
+					this.item.longitude = res.longitude;
+					this.item.latitude = res.latitude;
 					this.$forceUpdate();
 				}
 			});
@@ -116,26 +82,24 @@ export default {
 				{ name: 'legalPerson', checkType: 'notnull', errorMsg: '请输入法定代表人' },
 				{ name: 'phone', checkType: 'notnull', errorMsg: '请输入电话' },
 				{ name: 'email', checkType: 'email', errorMsg: '请输入邮箱' },
-				{ name: 'createDate', checkType: 'notnull', errorMsg: '请选择成立日期' },
 				{ name: 'address', checkType: 'notnull', errorMsg: '请输地址' },
 				{ name: 'contents', checkType: 'notnull', errorMsg: '请输入企业简介' },
-				{ name: 'p1', checkType: 'notnull', errorMsg: '请上传营业执照' },
-				{ name: 'avatar', checkType: 'notnull', errorMsg: '请上传企业照片' }
+				{ name: 'p1', checkType: 'notnull', errorMsg: '请上传营业执照' }
 			];
 			if (!this.verify.check(this.item, rule)) {
 				uni.showModal({ content: this.verify.error, showCancel: false });
 				return false;
 			}
 			this.http.request({
-				url: '/app/company/edit',
+				url: '/app/enterprise/edit',
 				data: this.item,
 				method: 'POST',
-				success: res => {
+				success: (res) => {
 					uni.showModal({
 						title: '提示',
 						content: '提交成功,等待后台审核。',
 						showCancel: false,
-						success: res => {
+						success: (res) => {
 							uni.navigateBack();
 						}
 					});

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

@@ -85,7 +85,7 @@
 						</view>
 					</view>
 				</view>
-				<view class="cd">
+				<view class="cd" @click="go('/pages/user/enterprise/index')">
 					<view class="out">
 						<view class="int">
 							<view class="icon" style="background-color: #03a9f4">&#xe627;</view>

+ 2 - 5
ruoyi-admin/src/main/java/com/ruoyi/web/work/api/Api_EnterpriseController.java

@@ -6,10 +6,7 @@ import com.ruoyi.web.work.domain.Enterprise;
 import com.ruoyi.web.work.service.IEnterpriseService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 @RestController
 @RequestMapping("/app/enterprise")
@@ -18,7 +15,7 @@ public class Api_EnterpriseController extends BaseController {
     @Autowired
     private IEnterpriseService enterpriseService;
 
-    @PostMapping("/index")
+    @GetMapping("/index")
     public AjaxResult index() {
         return enterpriseService.index();
     }

+ 14 - 6
ruoyi-admin/src/main/java/com/ruoyi/web/work/domain/Enterprise.java

@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
+import javax.validation.constraints.NotBlank;
 import java.util.Date;
 /**
  * @author lsw
@@ -20,33 +21,34 @@ public class Enterprise{
     @TableId(value = "id", type = IdType.INPUT)
     private Long id;
 
-    @ApiModelProperty(value = "关联账号")
-    private Long userId;
-
+    @NotBlank(message = "公司名称不能为空")
     @ApiModelProperty(value = "公司名称")
     private String name;
 
+    @NotBlank(message = "电话不能为空")
     @ApiModelProperty(value = "电话")
     private String phone;
 
+    @NotBlank(message = "法定代表人不能为空")
     @ApiModelProperty(value = "法定代表人")
     private String legalPerson;
 
+    @NotBlank(message = "邮箱不能为空")
     @ApiModelProperty(value = "邮箱")
     private String email;
 
+    @NotBlank(message = "注册资本不能为空")
     @ApiModelProperty(value = "注册资本")
     private String capital;
 
-    @ApiModelProperty(value = "成立日期")
-    private String createDate;
-
+    @NotBlank(message = "地址不能为空")
     @ApiModelProperty(value = "地址")
     private String address;
 
     @ApiModelProperty(value = "简介")
     private String contents;
 
+    @NotBlank(message = "营业执照不能为空")
     @ApiModelProperty(value = "营业执照")
     private String p1;
 
@@ -67,5 +69,11 @@ public class Enterprise{
     @ApiModelProperty(value = "企业logo")
     private String logo;
 
+    @ApiModelProperty(value = "经度")
+    private String longitude;
+
+    @ApiModelProperty(value = "维度")
+    private String latitude;
+
 
 }

+ 7 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/work/service/impl/EnterpriseServiceImpl.java

@@ -30,6 +30,7 @@ public class EnterpriseServiceImpl extends ServiceImpl<EnterpriseMapper, Enterpr
     public AjaxResult index() {
         Enterprise enterprise = getById(AppUtil.getUser().getId());
         if (enterprise == null) {
+            enterprise = new Enterprise();
             enterprise.setId(AppUtil.getUser().getId());
             if (!save(enterprise)) {
                 throw new ServiceException("创建企业信息失败");
@@ -40,8 +41,13 @@ public class EnterpriseServiceImpl extends ServiceImpl<EnterpriseMapper, Enterpr
 
     @Override
     public AjaxResult edit(Enterprise enterprise) {
+        Enterprise bean = getById(AppUtil.getUser().getId());
+        if (bean == null || bean.getState() == 1) {
+            return AjaxResult.error("企业信息不存在或当前无法编辑");
+        }
         enterprise.setId(AppUtil.getUser().getId());
-        if (updateById(enterprise)) {
+        enterprise.setState(0);
+        if (!updateById(enterprise)) {
             throw new ServiceException("编辑企业信息失败");
         }
         return AjaxResult.success();

+ 15 - 0
ruoyi-admin/src/main/resources/mapper/work/EnterpriseMapper.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.web.work.mapper.EnterpriseMapper">
+    
+    <select id="selectList" resultType="com.ruoyi.web.work.domain.Enterprise">
+        select * from tb_enterprise
+        <where>  
+            <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
+            <if test="state != null "> and state = #{state}</if>
+        </where>
+    </select>
+
+</mapper>

+ 0 - 19
ruoyi-admin/src/main/resources/mapper/work/enterpriseMenu.sql

@@ -1,19 +0,0 @@
--- 菜单 SQL
-insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values('企业信息', '3', '1', 'enterprise', 'work/enterprise/index', 1, 0, 'C', '0', '0', 'work:enterprise:list', '#', 'admin', sysdate(), '', null, '企业信息菜单');
-
--- 按钮父菜单ID
-SELECT @parentId := LAST_INSERT_ID();
-
--- 按钮 SQL
-insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values('查询', @parentId, '1',  '#', '', 1, 0, 'F', '0', '0', 'work:enterprise:query',        '#', 'admin', sysdate(), '', null, '');
-
-insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values('新增', @parentId, '2',  '#', '', 1, 0, 'F', '0', '0', 'work:enterprise:add',          '#', 'admin', sysdate(), '', null, '');
-
-insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values('修改', @parentId, '3',  '#', '', 1, 0, 'F', '0', '0', 'work:enterprise:edit',         '#', 'admin', sysdate(), '', null, '');
-
-insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values('删除', @parentId, '4',  '#', '', 1, 0, 'F', '0', '0', 'work:enterprise:remove',       '#', 'admin', sysdate(), '', null, '');