guhongwei 4 năm trước cách đây
mục cha
commit
a16be7a614

+ 119 - 0
src/components/uploadProduct.vue

@@ -0,0 +1,119 @@
+<template>
+  <div id="upload">
+    <el-upload
+      v-if="url"
+      ref="upload"
+      :action="url"
+      :list-type="listType"
+      :file-list="fileList"
+      :limit="limit"
+      :on-exceed="outLimit"
+      :on-preview="handlePictureCardPreview"
+      :before-remove="handleRemove"
+      :on-success="onSuccess"
+      :before-upload="beforeUpload"
+      :show-file-list="showList"
+      :accept="accept"
+    >
+      <el-button size="small" type="primary" v-if="isBtn">点击上传</el-button>
+      <template v-else-if="uploadBtn">
+        <el-button type="danger">选择文件</el-button>
+      </template>
+      <template v-else>
+        <i class="el-icon-plus"></i>
+      </template>
+      <template #tip v-if="tip">
+        {{ tip }}
+      </template>
+    </el-upload>
+    <el-dialog :visible.sync="dialogVisible">
+      <img width="100%" :src="dialogImageUrl" alt="" />
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import _ from 'lodash';
+export default {
+  name: 'upload',
+  props: {
+    url: { type: null },
+    limit: { type: Number },
+    data: { type: null },
+    type: { type: String },
+    isBtn: { type: Boolean, default: false },
+    uploadBtn: { type: Boolean, default: false },
+    showList: { type: Boolean, default: true },
+    accept: { type: String, default: '' },
+    tip: { type: String, default: undefined },
+    listType: { type: String, default: 'picture-card' },
+  },
+  components: {},
+  data: () => ({
+    dialogVisible: false,
+    dialogImageUrl: '',
+    fileList: [],
+  }),
+  created() {
+    if (this.data) {
+      this.defalutProcess(this.data);
+    }
+  },
+  watch: {
+    data: {
+      handler(val) {
+        this.defalutProcess(val);
+      },
+    },
+  },
+  computed: {},
+  methods: {
+    handlePictureCardPreview(file) {
+      this.dialogImageUrl = file.url;
+      this.dialogVisible = false;
+    },
+    handleRemove(file, fileList) {
+      let index = fileList.findIndex(f => _.isEqual(f, file));
+      this.$emit('delete', index);
+      return false;
+    },
+    outLimit() {
+      this.$message.error(`只允许上传${this.limit}个文件`);
+    },
+    onSuccess(response, file, fileList) {
+      //将文件整理好传回父组件
+      this.$emit('upload', { type: this.type, data: { ...response, name: file.name } });
+    },
+    beforeUpload(file) {
+      const sizeLimit = file.size / 1024 / 1024 < 10;
+      if (sizeLimit) return true;
+      else {
+        this.$message.error('文件超出10M!');
+        return false;
+      }
+    },
+    defalutProcess(val) {
+      if (_.isArray(val)) {
+        let newArr = val.map(item => {
+          let object = {};
+          object.name = item.name;
+          object.url = item.url;
+          return object;
+        });
+        this.$set(this, `fileList`, newArr);
+      } else if (_.isObject(val)) {
+        let object = {};
+        if (_.get(val, `url`)) {
+          object.name = val.name;
+          object.url = val.url;
+          this.$set(this, `fileList`, [object]);
+        }
+      } else if (typeof val === 'string') {
+        this.$set(this, `fileList`, [{ name: '附件', url: val }]);
+      }
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 4 - 0
src/layout/duijiehui/duijiedetail.vue

@@ -21,6 +21,10 @@
               <el-date-picker v-model="form.start_time" type="datetime" placeholder="请选择开始时间" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm">
               </el-date-picker>
             </el-form-item>
+            <el-form-item label="结束时间">
+              <el-date-picker v-model="form.end_time" type="datetime" placeholder="请选择结束时间" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm">
+              </el-date-picker>
+            </el-form-item>
             <el-form-item label="报名截止时间">
               <el-date-picker
                 v-model="form.join_end"

+ 268 - 0
src/layout/enterpriseProduct/detailForm.vue

@@ -0,0 +1,268 @@
+<template>
+  <div id="detailForm">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-form ref="form" :model="form" label-width="130px" :rules="rules">
+          <el-form-item label="审核信息状态" v-if="form.id">
+            <el-radio v-model="form.status" label="0" disabled>待审核</el-radio>
+            <el-radio v-model="form.status" label="1">审核通过</el-radio>
+            <el-radio v-model="form.status" label="2">审核拒绝</el-radio>
+          </el-form-item>
+          <el-form-item label="产品类型" prop="totaltype">
+            <el-select v-model="form.totaltype" placeholder="请选择产品类型">
+              <el-option label="技术" value="0"></el-option>
+              <el-option label="产品" value="1"></el-option>
+              <el-option label="服务" value="2"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="名称" prop="name">
+            <el-input v-model="form.name" placeholder="请输入名称"></el-input>
+          </el-form-item>
+          <el-form-item label="类型">
+            <el-select v-model="form.product_type_id" filterable @change="selectChild">
+              <el-option v-for="(item, index) in columnList" :key="index" :value="item.id" :label="item.name"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="产品简介">
+            <el-input v-model="form.introduction" placeholder="请输入产品简介"></el-input>
+          </el-form-item>
+          <span>
+            <el-form-item label="研发阶段" v-if="form.totaltype == null || form.totaltype == '0'">
+              <el-select v-model="form.phase" placeholder="请选择研发阶段">
+                <el-option label="阶段成果" value="0"></el-option>
+                <el-option label="最终成果" value="1"></el-option>
+              </el-select>
+            </el-form-item>
+          </span>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="产品单价" v-if="form.totaltype == null || form.totaltype == '0' || form.totaltype == '1'">
+                <el-input v-model="form.price" placeholder="请输入产品单价"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="产品单位" v-if="form.totaltype == null || form.totaltype == '0' || form.totaltype == '1'">
+                <el-select v-model="form.priceunit" placeholder="请选择产品单位">
+                  <el-option label="公斤" value="0"></el-option>
+                  <el-option label="套" value="1"></el-option>
+                  <el-option label="件" value="2"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-form-item label="产品图片" prop="image">
+            <upload
+              :limit="6"
+              :data="form.image"
+              :uploadBtn="true"
+              type="image"
+              :url="`/files/image/upload`"
+              @upload="uploadSuccess"
+              @delete="uploadDelete"
+            ></upload>
+          </el-form-item>
+          <span>
+            <el-form-item label="所属领域">
+              <el-select v-model="form.field" placeholder="请选择所属领域">
+                <el-option label="先进制造" value="0"></el-option>
+                <el-option label="新材料" value="1"></el-option>
+                <el-option label="光电子" value="2"></el-option>
+                <el-option label="信息技术" value="3"></el-option>
+                <el-option label="文化和科技融合" value="4"></el-option>
+              </el-select>
+            </el-form-item>
+          </span>
+          <el-form-item label="服务范围">
+            <el-input type="textarea" v-model="form.scope" placeholder="请输入服务范围"></el-input>
+          </el-form-item>
+          <el-form-item label="合作方式" v-if="form.totaltype == null || form.totaltype == '0' || form.totaltype == '1'">
+            <el-select v-model="form.coopermode" placeholder="请选择合作方式">
+              <el-option label="技术转让" value="0"></el-option>
+              <el-option label="技术服务" value="1"></el-option>
+              <el-option label="技术许可" value="2"></el-option>
+              <el-option label="技术融资" value="3"></el-option>
+              <el-option label="其他" value="4"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="交易方式" v-if="form.totaltype == null || form.totaltype == '0' || form.totaltype == '1'">
+            <el-select v-model="form.business" placeholder="请选择交易方式">
+              <el-option label="公用" value="0"></el-option>
+              <el-option label="竞价" value="1"></el-option>
+              <el-option label="转让" value="2"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="投入预算" v-if="form.totaltype == null || form.totaltype == '0'">
+            <el-input v-model="form.budget" placeholder="请输入投入预算"></el-input>
+          </el-form-item>
+          <el-form-item label="需求截止日期" v-if="form.totaltype == null || form.totaltype == '0'">
+            <el-date-picker v-model="form.end_date" type="date" placeholder="请选择需求截止日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd">
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item v-if="form.totaltype == null || form.totaltype == '0'">
+            <span slot="label">
+              <el-popover
+                placement="top-start"
+                width="200"
+                trigger="hover"
+                content="(阐述在生产经营、项目建设、科研活动、产业化方向中遇到的技术难题或瓶颈问题及需达到的技术指标)"
+              >
+                <span slot="reference" style="color:#409eff">难题或瓶颈问题</span>
+              </el-popover>
+            </span>
+            <el-input type="textarea" v-model="form.difficult_problem" placeholder="请输入难题或瓶颈问题"></el-input>
+          </el-form-item>
+          <el-form-item v-if="form.totaltype == null || form.totaltype == '0'">
+            <span slot="label">
+              <el-popover
+                placement="top-start"
+                width="200"
+                trigger="hover"
+                content="(企业承接成果、技术所具备的技术人员、设备、资金等基础条件及其他配套条件)"
+              >
+                <span slot="reference" style="color:#409eff">企业解决技术需求已具备的条件</span>
+              </el-popover>
+            </span>
+            <el-input type="textarea" v-model="form.demand" placeholder="请输入企业解决需求"></el-input>
+          </el-form-item>
+          <el-form-item label="企业名称" v-if="form.totaltype == null || form.totaltype == '1'">
+            <el-input v-model="form.company" placeholder="请输入企业名称"></el-input>
+          </el-form-item>
+          <el-form-item label="企业地址" v-if="form.totaltype == null || form.totaltype == '1'">
+            <el-input v-model="form.address" placeholder="请输入企业地址"></el-input>
+          </el-form-item>
+          <el-form-item label="技术团队情况" v-if="form.totaltype == null || form.totaltype == '1'">
+            <el-input type="textarea" v-model="form.team" placeholder="请输入技术团队情况"></el-input>
+          </el-form-item>
+          <el-form-item label="知识产权情况" v-if="form.totaltype == null || form.totaltype == '1'">
+            <el-input v-model="form.property" placeholder="请输入知识产权情况"></el-input>
+          </el-form-item>
+          <el-form-item label="技术成熟度" v-if="form.totaltype == null || form.totaltype == '1'">
+            <el-select v-model="form.mature" placeholder="请选择技术成熟度">
+              <el-option label="实验室" value="0"></el-option>
+              <el-option label="小试" value="1"></el-option>
+              <el-option label="中试" value="2"></el-option>
+              <el-option label="成熟" value="3"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="是否有拟合作企业,如有请填企业名称" v-if="form.totaltype == null || form.totaltype == '1'">
+            <el-input v-model="form.coopercompany" placeholder="请输入是否有拟合作企业,如有请填企业名称"></el-input>
+          </el-form-item>
+          <el-form-item label="其他需求" v-if="form.totaltype == null || form.totaltype == '1'">
+            <el-input v-model="form.other" placeholder="请输入其他需求"></el-input>
+          </el-form-item>
+          <el-form-item label="联系人" prop="contact_user">
+            <el-input v-model="form.contact_user" placeholder="请输入联系人"></el-input>
+          </el-form-item>
+          <el-form-item label="联系电话" prop="contact_tel">
+            <el-input v-model.number="form.contact_tel" placeholder="请输入联系电话" maxlength="11"></el-input>
+          </el-form-item>
+          <el-form-item>
+            <el-button @click="draftBtn('form')">保存草稿</el-button>
+            <el-button type="primary" @click="submitBtn('form')">信息发布</el-button>
+            <el-button type="primary" @click="examineBtn()" v-if="form.status == '1' || form.status == '2'">审核提交</el-button>
+          </el-form-item>
+        </el-form>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import _ from 'lodash';
+import upload from '@/components/uploadProduct.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: markettype } = createNamespacedHelpers('markettype');
+export default {
+  name: 'detailForm',
+  props: {
+    form: null,
+  },
+  components: { upload },
+  data: function() {
+    return {
+      columnList: [],
+      // 验证
+      rules: {
+        name: [{ required: true, message: '请输入名称', trigger: 'blur' }],
+        totaltype: [{ required: true, message: '请输入名称', trigger: 'change' }],
+        contact_user: [{ required: true, message: '请输入联系人', trigger: 'blur' }],
+        contact_tel: [
+          { required: true, message: '请输入联系电话', trigger: 'blur' },
+          // { type: 'number', message: '电话必须为数字值' },
+        ],
+      },
+    };
+  },
+  created() {
+    // 查询类型
+    this.maarkettype();
+  },
+  methods: {
+    ...markettype({ markettypeList: 'query' }),
+    // 查询类型
+    async maarkettype({ category = 54, ...info } = {}) {
+      const res = await this.markettypeList({ category, ...info });
+      if (this.$checkRes(res)) {
+        this.$set(this, `columnList`, res.data);
+      }
+    },
+    // 审核提交
+    examineBtn() {
+      this.$emit('examineBtn', { data: this.form });
+    },
+    // 草稿
+    draftBtn() {
+      this.$emit('draftBtn', { data: this.form });
+    },
+    // 信息发布
+    submitBtn(formName) {
+      this.$refs[formName].validate(valid => {
+        if (valid) {
+          this.$emit('submitBtn', { data: this.form });
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
+      });
+    },
+    // 类型选择
+    selectChild(product_type_id) {
+      let res = this.columnList.filter(fil => fil.id === product_type_id);
+      if (res.length > 0) {
+        this.$set(this.form, `product_type_name`, res[0].name);
+      }
+      this.$forceUpdate();
+    },
+    // 图片
+    uploadSuccess({ type, data }) {
+      let arr = _.get(this.form, type);
+      if (_.isArray(arr)) {
+        let datas = { name: data.name, url: data.uri };
+        this.form[type].push({ name: data.name, url: data.uri });
+      } else {
+        let newArr = [{ name: data.name, url: data.uri }];
+        this.$set(this.form, `${type}`, newArr);
+      }
+    },
+    // 删除图片
+    uploadDelete(index) {
+      this.form.image.splice(index, 1);
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+    pageTitle() {
+      return `${this.$route.meta.title}`;
+    },
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  padding: 15px 0;
+}
+</style>

+ 53 - 30
src/layout/enterpriseProduct/enterpriseProduct.vue

@@ -3,24 +3,28 @@
     <el-row>
       <el-col :span="24" class="info">
         <el-col :span="24" class="top">
-          <el-col :span="4" class="topTitle">
+          <el-col :span="2" class="topTitle">
             <span>审核信息列表</span>
           </el-col>
-          <template>
-            <el-form ref="form" :model="forms" label-width="80px">
-              <el-radio-group v-model="forms.status" @change="submit">
-                <el-radio label="0">待审核</el-radio>
-                <el-radio label="1">审核成功</el-radio>
-                <el-radio label="2">审核失败</el-radio>
-              </el-radio-group>
-            </el-form>
-          </template>
+          <el-col :span="10">
+            <template>
+              <el-form ref="form" :model="forms" label-width="80px">
+                <el-radio-group v-model="forms.status" @change="submit">
+                  <el-radio label="0">待审核</el-radio>
+                  <el-radio label="1">审核成功</el-radio>
+                  <el-radio label="2">审核失败</el-radio>
+                </el-radio-group>
+              </el-form>
+            </template>
+          </el-col>
+          <el-col :span="12" class="addBtn" v-if="user.role != '1'">
+            <el-button type="primary" size="mini" @click="$router.push({ path: '/enterpriseProduct/detail' })">添加信息</el-button>
+          </el-col>
         </el-col>
         <el-col :span="24" class="list">
           <template>
             <el-table :data="recruitInfo" style="width: 100%">
               <el-table-column prop="name" label="产品名称" align="center"> </el-table-column>
-
               <el-table-column prop="totaltype" label="产品类型 " align="center">
                 <template v-slot="scoped">
                   {{
@@ -28,6 +32,23 @@
                   }}
                 </template>
               </el-table-column>
+              <el-table-column prop="field" label="所属领域 " align="center">
+                <template v-slot="scoped">
+                  {{
+                    `${scoped.row.field}` === `0`
+                      ? '先进制造'
+                      : `${scoped.row.field}` === `1`
+                      ? '新材料'
+                      : `${scoped.row.field}` === `2`
+                      ? '光电子'
+                      : `${scoped.row.field}` === `3`
+                      ? '信息技术'
+                      : `${scoped.row.field}` === `4`
+                      ? '文化和科技融合'
+                      : '暂无'
+                  }}
+                </template>
+              </el-table-column>
               <el-table-column prop="state" label="状态" align="center">
                 <template v-slot="scoped">
                   {{
@@ -41,17 +62,13 @@
                   }}
                 </template>
               </el-table-column>
-              <el-table-column label="操作" align="center">
+              <el-table-column fixed="right" label="操作" align="center">
                 <template slot-scope="scoped">
-                  <el-tooltip content="审核通过" placement="bottom" effect="light">
-                    <el-button type="text" size="small" @click="handleEdit(scoped.row)" v-if="scoped.row.status == '0'"
-                      ><i class="el-icon-check"></i
-                    ></el-button>
+                  <el-tooltip content="审核" placement="bottom" effect="light">
+                    <el-button type="text" size="small" @click="handleView(scoped.row)" v-if="scoped.row.status == '0'"><i class="el-icon-view"></i></el-button>
                   </el-tooltip>
-                  <el-tooltip content="审核拒绝" placement="bottom" effect="light">
-                    <el-button type="text" size="small" @click="handleshibai(scoped.row)" v-if="scoped.row.status == '0'"
-                      ><i class="el-icon-close"></i
-                    ></el-button>
+                  <el-tooltip content="编辑" placement="bottom" effect="light">
+                    <el-button type="text" size="small" @click="handleEdit(scoped.row)" v-if="scoped.row.status == '3'"><i class="el-icon-edit"></i></el-button>
                   </el-tooltip>
                   <el-tooltip content="删除" placement="bottom" effect="light">
                     <el-button type="text" size="small" @click="handleDelete(scoped.row)"><i class="el-icon-delete"></i></el-button>
@@ -78,6 +95,7 @@
 </template>
 
 <script>
+import { mapActions, mapState, mapMutations, createNamespacedHelpers } from 'vuex';
 export default {
   name: 'column',
   props: {
@@ -91,22 +109,24 @@ export default {
     pageSize: 10,
   }),
   created() {},
-  computed: {},
+  computed: {
+    ...mapState(['user']),
+  },
   methods: {
     submit() {
       this.$emit('submit');
     },
-    addData() {
-      this.$router.push({ path: '/personnel/recruitDetail' });
+    // 审核
+    handleView(data) {
+      this.$router.push({ path: '/enterpriseProduct/detail', query: { id: data.id } });
     },
-    handleDelete(item) {
-      this.$emit('delete', item);
+    // 编辑
+    handleEdit(data) {
+      this.$router.push({ path: '/enterpriseProduct/detail', query: { id: data.id } });
     },
-    handleEdit(row) {
-      this.$emit('edit', { data: row });
-    },
-    handleshibai(row) {
-      this.$emit('shibai', { data: row });
+    // 删除
+    handleDelete(data) {
+      this.$emit('handleDelete', data.id);
     },
     handleSizeChange(val) {
       console.log(`每页 ${val} 条`);
@@ -135,4 +155,7 @@ export default {
   padding: 20px 0;
   text-align: center;
 }
+.addBtn {
+  text-align: right;
+}
 </style>

+ 6 - 0
src/router/index.js

@@ -96,6 +96,12 @@ const routes = [
     meta: { title: '产品供求审核管理' },
     component: () => import('../views/enterpriseProduct/index.vue'),
   },
+  //产品供求发布管理
+  {
+    path: '/enterpriseProduct/detail',
+    meta: { title: '产品供求信息管理' },
+    component: () => import('../views/enterpriseProduct/detail.vue'),
+  },
   //产品供求交易状态审核管理
   {
     path: '/enterpriseTrans/index',

+ 4 - 0
src/store/index.js

@@ -24,6 +24,9 @@ import place from './place';
 import apply from './apply';
 // 直播
 import room from './onlive/room';
+// 类型
+import markettype from './markettype';
+
 Vue.use(Vuex);
 
 export default new Vuex.Store({
@@ -46,6 +49,7 @@ export default new Vuex.Store({
     role, //菜单分配权限
     authUser, //管理员
     room, //直播房间
+    markettype, //类型
   },
   state: { ...ustate },
   mutations: { ...umutations },

+ 0 - 1
src/store/live.js

@@ -10,7 +10,6 @@ const mutations = {};
 
 const actions = {
   async query({ commit }, { skip = 0, limit, ...info } = {}) {
-    console.log(info);
     const res = await this.$axios.$get(`${api.informate}`, { skip, limit, ...info });
     return res;
   },

+ 39 - 0
src/store/markettype.js

@@ -0,0 +1,39 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  codeitemInfo: `/api/setting/codeitem`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit = 10, ...info } = {}) {
+    console.log(info);
+    const res = await this.$axios.$get(api.codeitemInfo, { skip, limit, ...info });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.codeitemInfo}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.codeitemInfo}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...info } = {}) {
+    const res = await this.$axios.$post(`${api.codeitemInfo}/${id}`, { ...info });
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.codeitemInfo}/${payload}`);
+    return res;
+  },
+};
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 23 - 3
src/views/duijiehui/index.vue

@@ -85,6 +85,7 @@ export default {
     fields: [
       { label: '对接会标题', prop: 'title' },
       { label: '开始时间', prop: 'start_time' },
+      { label: '结束时间', prop: 'end_time' },
       { label: '报名截止时间', prop: 'join_end' },
       { label: '省', prop: 'sheng' },
       { label: '市', prop: 'shi' },
@@ -106,6 +107,8 @@ export default {
     ],
     list: [],
     total: 0,
+    timer: '',
+    value: 0,
   }),
   created() {
     this.search();
@@ -143,18 +146,35 @@ export default {
       const res = await this.delete(data.id);
       if (this.$checkRes(res, '删除成功', res.errmsg || '删除失败')) this.search();
     },
-
     async share({ data }) {
       this.$router.push({ path: './duijieshenhe', query: { data: data } });
     },
-
     async tickets({ data }) {
       this.$router.push({ path: './duijiehuiexamine', query: { id: data.id } });
     },
-
     async order({ data }) {
       this.$router.push({ path: './duijiehuistatus', query: { id: data.id } });
     },
+    changeSearch() {
+      this.value++;
+      console.log(this.value);
+    },
+  },
+  // watch: {
+  //   list: {
+  //     handler(val) {
+  //       if (val.length > 0) {
+  //         this.timer = setInterval(this.changeSearch(val), 1000);
+  //       }
+  //     },
+  //     immediate: true,
+  //   },
+  // },
+  mounted() {
+    this.timer = setInterval(this.changeSearch, 2000);
+  },
+  beforeDestroy() {
+    clearInterval(this.timer);
   },
 };
 </script>

+ 117 - 0
src/views/enterpriseProduct/detail.vue

@@ -0,0 +1,117 @@
+<template>
+  <div id="detail">
+    <el-row>
+      <el-col :span="24" class="top">
+        <topInfo :topTitle="topTitle"></topInfo>
+      </el-col>
+      <el-col :span="24" class="main">
+        <detailForm :form="form" @draftBtn="draftBtn" @submitBtn="submitBtn" @examineBtn="examineBtn"></detailForm>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import topInfo from '@/layout/public/top.vue';
+import detailForm from '@/layout/enterpriseProduct/detailForm.vue';
+import { createNamespacedHelpers, mapGetters, mapState } from 'vuex';
+const { mapActions: product } = createNamespacedHelpers('market');
+export default {
+  name: 'detail',
+  props: {},
+  components: {
+    topInfo,
+    detailForm, //发布信息
+  },
+  data: function() {
+    return {
+      topTitle: '发布信息',
+      form: {},
+    };
+  },
+  created() {
+    this.searchInfo();
+  },
+  methods: {
+    ...product(['query', 'delete', 'fetch', 'update', 'create']),
+    // 详情
+    async searchInfo() {
+      if (this.id) {
+        const res = await this.fetch(this.id);
+        if (this.$checkRes(res)) {
+          this.$set(this, `form`, res.data);
+        }
+      }
+    },
+    // 草稿
+    async draftBtn({ data }) {
+      if (this.id) {
+        const res = await this.update(data);
+        if (this.$checkRes(res)) {
+          this.$message({
+            message: '修改信息成功',
+            type: 'success',
+          });
+        }
+      } else {
+        data.status = '3';
+        data.userid = this.user.uid;
+        const res = await this.create(data);
+        if (this.$checkRes(res)) {
+          this.$message({
+            message: '保存草稿信息成功',
+            type: 'success',
+          });
+        }
+      }
+    },
+    // 信息发布
+    async submitBtn({ data }) {
+      if (this.id) {
+        data.status = '0';
+        const res = await this.update(data);
+        if (this.$checkRes(res)) {
+          this.$message({
+            message: '修改信息成功',
+            type: 'success',
+          });
+        }
+      } else {
+        data.status = '0';
+        data.userid = this.user.uid;
+        const res = await this.create(data);
+        if (this.$checkRes(res)) {
+          this.$message({
+            message: '发布信息成功,等待审核',
+            type: 'success',
+          });
+        }
+      }
+    },
+    // 审核信息提交
+    async examineBtn({ data }) {
+      const res = await this.update(data);
+      if (this.$checkRes(res)) {
+        this.$message({
+          message: '审核信息成功',
+          type: 'success',
+        });
+      }
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+    id() {
+      return this.$route.query.id;
+    },
+    pageTitle() {
+      return `${this.$route.meta.title}`;
+    },
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 15 - 29
src/views/enterpriseProduct/index.vue

@@ -9,11 +9,9 @@
           :recruitInfo="recruitInfo"
           :total="total"
           @handleCurrentChange="handleCurrentChange"
-          @delete="deleteData"
-          @edit="edit"
-          @shibai="shibai"
           :forms="forms"
           @submit="submit"
+          @handleDelete="handleDelete"
         ></enterpriseProduct>
       </el-col>
     </el-row>
@@ -38,7 +36,7 @@ export default {
     total: 1,
     skip: '',
     forms: {
-      status: '0',
+      status: '',
     },
   }),
   created() {
@@ -47,9 +45,7 @@ export default {
   computed: {},
   methods: {
     ...product(['query', 'delete', 'fetch', 'update']),
-
     async submit() {
-      // console.log(this.forms.status);
       this.search(this.forms.status);
     },
     async search({ skip = 0, limit = 10, ...info } = {}) {
@@ -63,34 +59,24 @@ export default {
       } else {
         status = 0;
         skip = this.skip;
-        const res = await this.query({ skip, limit, status, ...info });
-        let newData = res.data.filter(i => i.status != '3');
+        const res = await this.query({ skip, limit, status: 0, ...info });
+        const arr = await this.query({ skip, limit, status: 3, ...info });
+        var newData = res.data.concat(arr.data);
         this.$set(this, `recruitInfo`, newData);
         this.$set(this, `total`, newData.length);
       }
     },
-    async deleteData(item) {
-      const res = await this.delete(item.id);
-      this.$checkRes(res, '删除成功', '删除失败');
-      this.search();
-    },
-
-    async edit({ data }) {
-      console.log('a');
-      data.status = '1';
-      let res = await this.update(data);
-      this.$checkRes(res, '审核成功', '审核失败');
-      console.log(data);
-    },
-
-    async shibai({ data }) {
-      console.log('a');
-      data.status = '2';
-      let res = await this.update(data);
-      this.$checkRes(res, '审核成功', '审核失败');
-      console.log(data);
+    // 删除
+    async handleDelete(id) {
+      const res = await this.delete(id);
+      if (this.$checkRes(res)) {
+        this.$message({
+          message: '删除信息成功',
+          type: 'success',
+        });
+        this.search();
+      }
     },
-
     async handleCurrentChange({ skip, limit, currentPage }) {
       this.$set(this, `skip`, skip);
       this.search();