1
This commit is contained in:
		
							parent
							
								
									22d848f7f2
								
							
						
					
					
						commit
						0a87dabfac
					
				
							
								
								
									
										12
									
								
								src/App.vue
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								src/App.vue
									
									
									
									
									
								
							@ -5,7 +5,8 @@
 | 
			
		||||
<script>
 | 
			
		||||
import Vue from 'vue';
 | 
			
		||||
import config from '@/config/style';
 | 
			
		||||
 | 
			
		||||
import Layout from '@/layouts/index.vue';
 | 
			
		||||
import {UsergroupIcon} from "tdesign-icons-vue";
 | 
			
		||||
export default Vue.extend({
 | 
			
		||||
  computed: {
 | 
			
		||||
    mode() {
 | 
			
		||||
@ -13,6 +14,15 @@ export default Vue.extend({
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  mounted() {
 | 
			
		||||
    const newRouteConfig = {
 | 
			
		||||
      path: '/user',
 | 
			
		||||
      name: 'user',
 | 
			
		||||
      component: Layout,
 | 
			
		||||
      redirect: '/user/user_index',
 | 
			
		||||
      meta: {title: '会员管理123', icon: UsergroupIcon},
 | 
			
		||||
    };
 | 
			
		||||
    console.log(newRouteConfig);
 | 
			
		||||
    this.$router.addRoute(newRouteConfig);
 | 
			
		||||
    this.$store.dispatch('setting/changeTheme', { ...config });
 | 
			
		||||
  },
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 972 KiB After Width: | Height: | Size: 2.3 MiB  | 
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 11 KiB  | 
@ -3,58 +3,60 @@
 | 
			
		||||
    <t-head-menu :class="menuCls" :theme="theme" expandType="popup" :value="active">
 | 
			
		||||
      <template #logo>
 | 
			
		||||
        <span v-if="showLogo" class="header-logo-container" @click="handleNav('/dashboard/base')">
 | 
			
		||||
          <logo-full class="t-logo" />
 | 
			
		||||
          <logo-full class="t-logo"/>
 | 
			
		||||
        </span>
 | 
			
		||||
        <div v-else class="header-operate-left">
 | 
			
		||||
<!--          <t-button theme="default" shape="square" variant="text" @click="changeCollapsed">-->
 | 
			
		||||
<!--            <view-list-icon class="collapsed-icon" />-->
 | 
			
		||||
<!--          </t-button>-->
 | 
			
		||||
<!--          <search :layout="layout" />-->
 | 
			
		||||
          <!--          <t-button theme="default" shape="square" variant="text" @click="changeCollapsed">-->
 | 
			
		||||
          <!--            <view-list-icon class="collapsed-icon" />-->
 | 
			
		||||
          <!--          </t-button>-->
 | 
			
		||||
          <!--          <search :layout="layout" />-->
 | 
			
		||||
        </div>
 | 
			
		||||
      </template>
 | 
			
		||||
      <menu-content v-show="layout !== 'side'" class="header-menu" :navData="menu" />
 | 
			
		||||
      <menu-content v-show="layout !== 'side'" class="header-menu" :navData="menu"/>
 | 
			
		||||
      <template #operations>
 | 
			
		||||
        <div class="operations-container">
 | 
			
		||||
          <!-- 搜索框 -->
 | 
			
		||||
<!--          <search v-if="layout !== 'side'" :layout="layout" />-->
 | 
			
		||||
          <!--          <search v-if="layout !== 'side'" :layout="layout" />-->
 | 
			
		||||
 | 
			
		||||
          <!-- 全局通知 -->
 | 
			
		||||
<!--          <notice />-->
 | 
			
		||||
          <!--          <notice />-->
 | 
			
		||||
 | 
			
		||||
<!--          <t-tooltip placement="bottom" content="代码仓库">-->
 | 
			
		||||
<!--            <t-button theme="default" shape="square" variant="text" @click="navToGitHub">-->
 | 
			
		||||
<!--              <logo-github-icon />-->
 | 
			
		||||
<!--            </t-button>-->
 | 
			
		||||
<!--          </t-tooltip>-->
 | 
			
		||||
<!--          <t-tooltip placement="bottom" content="帮助文档">-->
 | 
			
		||||
<!--            <t-button theme="default" shape="square" variant="text" @click="navToHelper">-->
 | 
			
		||||
<!--              <help-circle-icon />-->
 | 
			
		||||
<!--            </t-button>-->
 | 
			
		||||
<!--          </t-tooltip>-->
 | 
			
		||||
          <!--          <t-tooltip placement="bottom" content="代码仓库">-->
 | 
			
		||||
          <!--            <t-button theme="default" shape="square" variant="text" @click="navToGitHub">-->
 | 
			
		||||
          <!--              <logo-github-icon />-->
 | 
			
		||||
          <!--            </t-button>-->
 | 
			
		||||
          <!--          </t-tooltip>-->
 | 
			
		||||
          <!--          <t-tooltip placement="bottom" content="帮助文档">-->
 | 
			
		||||
          <!--            <t-button theme="default" shape="square" variant="text" @click="navToHelper">-->
 | 
			
		||||
          <!--              <help-circle-icon />-->
 | 
			
		||||
          <!--            </t-button>-->
 | 
			
		||||
          <!--          </t-tooltip>-->
 | 
			
		||||
          <t-dropdown :min-column-width="125" trigger="click">
 | 
			
		||||
            <template #dropdown>
 | 
			
		||||
              <t-dropdown-menu>
 | 
			
		||||
<!--                <t-dropdown-item class="operations-dropdown-container-item" @click="handleNav('/user/index')">-->
 | 
			
		||||
<!--                  <user-circle-icon />个人中心-->
 | 
			
		||||
<!--                </t-dropdown-item>-->
 | 
			
		||||
                <t-dropdown-item class="operations-dropdown-container-item" @click="handleNav('/dashboard/admin_pwd')">
 | 
			
		||||
                  <user-circle-icon/>
 | 
			
		||||
                  密码修改
 | 
			
		||||
                </t-dropdown-item>
 | 
			
		||||
                <t-dropdown-item class="operations-dropdown-container-item" @click="handleLogout">
 | 
			
		||||
                  <poweroff-icon />退出登录
 | 
			
		||||
                  <poweroff-icon/>
 | 
			
		||||
                  退出登录
 | 
			
		||||
                </t-dropdown-item>
 | 
			
		||||
              </t-dropdown-menu>
 | 
			
		||||
            </template>
 | 
			
		||||
            <t-button class="header-user-btn" theme="default" variant="text">
 | 
			
		||||
              <template #icon>
 | 
			
		||||
                <user-circle-icon class="header-user-avatar" />
 | 
			
		||||
                <user-circle-icon class="header-user-avatar"/>
 | 
			
		||||
              </template>
 | 
			
		||||
              <div class="header-user-account">{{association.association_name}}</div>
 | 
			
		||||
              <div class="header-user-account">{{ association.association_name }}</div>
 | 
			
		||||
              <template #suffix>
 | 
			
		||||
                <chevron-down-icon />
 | 
			
		||||
                <chevron-down-icon/>
 | 
			
		||||
              </template>
 | 
			
		||||
            </t-button>
 | 
			
		||||
          </t-dropdown>
 | 
			
		||||
          <t-tooltip placement="bottom" content="系统设置">
 | 
			
		||||
            <t-button theme="default" shape="square" variant="text" @click="toggleSettingPanel">
 | 
			
		||||
              <setting-icon />
 | 
			
		||||
              <setting-icon/>
 | 
			
		||||
            </t-button>
 | 
			
		||||
          </t-tooltip>
 | 
			
		||||
        </div>
 | 
			
		||||
@ -75,7 +77,7 @@ import {
 | 
			
		||||
  SettingIcon,
 | 
			
		||||
  ChevronDownIcon,
 | 
			
		||||
} from 'tdesign-icons-vue';
 | 
			
		||||
import { prefix } from '@/config/global';
 | 
			
		||||
import {prefix} from '@/config/global';
 | 
			
		||||
import LogoFull from '@/assets/assets-logo-full.svg';
 | 
			
		||||
 | 
			
		||||
import Notice from './Notice.vue';
 | 
			
		||||
@ -128,14 +130,14 @@ export default Vue.extend({
 | 
			
		||||
      prefix,
 | 
			
		||||
      visibleNotice: false,
 | 
			
		||||
      isSearchFocus: false,
 | 
			
		||||
      association:{}
 | 
			
		||||
      association: {}
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  mounted() {
 | 
			
		||||
    if(typeof (store.state.user.association)=='object'){
 | 
			
		||||
      this.association=store.state.user.association;
 | 
			
		||||
    }else{
 | 
			
		||||
      this.association=JSON.parse(store.state.user.association);
 | 
			
		||||
    if (typeof (store.state.user.association) == 'object') {
 | 
			
		||||
      this.association = store.state.user.association;
 | 
			
		||||
    } else {
 | 
			
		||||
      this.association = JSON.parse(store.state.user.association);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  },
 | 
			
		||||
@ -174,7 +176,7 @@ export default Vue.extend({
 | 
			
		||||
    async handleLogout() {
 | 
			
		||||
      await store.commit('user/removeAssociation');
 | 
			
		||||
      await store.commit('user/removeToken');
 | 
			
		||||
      await store.commit('user/setUserInfo',[]);
 | 
			
		||||
      await store.commit('user/setUserInfo', []);
 | 
			
		||||
      this.$router.replace('/').catch(() => '');
 | 
			
		||||
      localStorage.removeItem('reload');
 | 
			
		||||
      this.$router.push('/login');
 | 
			
		||||
 | 
			
		||||
@ -96,6 +96,7 @@ export default Vue.extend({
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    list(): Array<MenuRoute> {
 | 
			
		||||
 | 
			
		||||
      return getMenuList(this.navData);
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
@ -66,7 +66,7 @@
 | 
			
		||||
        <template #qr_code="{ row }">
 | 
			
		||||
          <div style="text-align: center;"  v-if="row.activity_type==4 || row.activity_type==1">
 | 
			
		||||
            <vue-qr v-if="row.if_sign==2"
 | 
			
		||||
              :text="$store.state.user.apiUrl+'?id='+row.id+'&association_id='+association.association_id"
 | 
			
		||||
              :text="$store.state.user.apiUrl+'?type=1&id='+row.id+'&association_id='+association.association_id"
 | 
			
		||||
              width="100"
 | 
			
		||||
              height="100"
 | 
			
		||||
            ></vue-qr>
 | 
			
		||||
@ -107,7 +107,7 @@
 | 
			
		||||
        ></t-pagination>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <t-dialog header="报名详情" :confirmBtn="null" :visible="infoMode" :onClose="onCloseMy" width="65%" top="50px">
 | 
			
		||||
    <t-dialog header="报名详情" :closeOnOverlayClick="false"  :confirmBtn="null" :visible="infoMode" :onClose="onCloseMy" width="65%" top="50px">
 | 
			
		||||
      <div style="height: 650px;overflow-y: scroll;">
 | 
			
		||||
        <div style="text-align: right">
 | 
			
		||||
          <t-button @click="exportList(0)"><CloudDownloadIcon slot="icon" />导出</t-button>
 | 
			
		||||
@ -162,7 +162,7 @@
 | 
			
		||||
      </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </t-dialog>
 | 
			
		||||
    <t-dialog header="问卷统计" :confirmBtn="null" :visible="QuestionnaireMode" :onClose="onCloseMy" width="65%" top="50px">
 | 
			
		||||
    <t-dialog header="问卷统计" :closeOnOverlayClick="false"  :confirmBtn="null" :visible="QuestionnaireMode" :onClose="onCloseMy" width="65%" top="50px">
 | 
			
		||||
      <div style="height: 600px;overflow-y: scroll;">
 | 
			
		||||
        <div style="display: flex; justify-content: space-between;">
 | 
			
		||||
          <div style="font-size: 18px;font-weight: 600;color: #e60000;margin: 15px 0px"></div>
 | 
			
		||||
@ -198,7 +198,7 @@
 | 
			
		||||
        </table>
 | 
			
		||||
      </div>
 | 
			
		||||
    </t-dialog>
 | 
			
		||||
    <t-dialog header="捐赠详情" :confirmBtn="null" :visible="JuanMode" :onClose="onCloseMy" width="65%" top="50px">
 | 
			
		||||
    <t-dialog header="捐赠详情" :closeOnOverlayClick="false"  :confirmBtn="null" :visible="JuanMode" :onClose="onCloseMy" width="65%" top="50px">
 | 
			
		||||
      <div style="height: 600px;overflow-y: scroll;">
 | 
			
		||||
        <table class="layui-table" style="margin: 10px 0px">
 | 
			
		||||
          <thead>
 | 
			
		||||
@ -228,7 +228,7 @@
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </t-dialog>
 | 
			
		||||
    <t-dialog :header="isEdit?'编辑活动':'新增活动'" :visible="addMode" :onClose="onCloseMy" @confirm="onSubmit"
 | 
			
		||||
    <t-dialog :header="isEdit?'编辑活动':'新增活动'" :closeOnOverlayClick="false"  :visible="addMode" :onClose="onCloseMy" @confirm="onSubmit"
 | 
			
		||||
              width="45%" top="20px">
 | 
			
		||||
      <t-form  layout="inline">
 | 
			
		||||
        <t-form-item label="活动标题" name="activity_name">
 | 
			
		||||
@ -242,7 +242,7 @@
 | 
			
		||||
        </t-form-item>
 | 
			
		||||
        <t-form-item label="活动类别" name="activity_type" >
 | 
			
		||||
          <t-select v-model="addForm.activity_type" :style="{ width: '480px' }">
 | 
			
		||||
            <t-option key="1" label="线下活动" value="1"/>
 | 
			
		||||
            <t-option key="1" label="协会活动" value="1"/>
 | 
			
		||||
            <t-option key="2" label="调查问卷" value="2"/>
 | 
			
		||||
            <t-option key="3" label="公益捐赠" value="3"/>
 | 
			
		||||
            <t-option key="4" label="学习培训" value="4"/>
 | 
			
		||||
@ -354,7 +354,7 @@
 | 
			
		||||
      </t-form>
 | 
			
		||||
    </t-dialog>
 | 
			
		||||
 | 
			
		||||
    <t-dialog header="新增题目" :visible="questionnaireAddMode" :onClose="onCloseMy" @confirm="onSubmitQuestionnaire"
 | 
			
		||||
    <t-dialog header="新增题目" :visible="questionnaireAddMode" :closeOnOverlayClick="false"  :onClose="onCloseMy" @confirm="onSubmitQuestionnaire"
 | 
			
		||||
              width="45%" top="20px">
 | 
			
		||||
      <div style="height: 600px;overflow-y: scroll;">
 | 
			
		||||
        <t-form>
 | 
			
		||||
@ -392,7 +392,7 @@
 | 
			
		||||
        </t-form>
 | 
			
		||||
      </div>
 | 
			
		||||
    </t-dialog>
 | 
			
		||||
    <t-dialog header="编辑题目" :visible="questionnaireUpdateMode" :confirmBtn="null"  :onClose="onCloseMy" @confirm="onCloseMy"
 | 
			
		||||
    <t-dialog header="编辑题目" :visible="questionnaireUpdateMode" :closeOnOverlayClick="false"  :confirmBtn="null"  :onClose="onCloseMy" @confirm="onCloseMy"
 | 
			
		||||
              width="45%" top="20px">
 | 
			
		||||
      <div style="height: 600px;overflow-y: scroll;">
 | 
			
		||||
        <t-form>
 | 
			
		||||
@ -977,6 +977,8 @@ export default {
 | 
			
		||||
          if (res.code == 1) {
 | 
			
		||||
            this.list = res.data.ret;
 | 
			
		||||
            this.pagination.total = res.data.count;
 | 
			
		||||
          }else{
 | 
			
		||||
            this.list=[];
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
@ -23,7 +23,7 @@
 | 
			
		||||
        </template>
 | 
			
		||||
      </t-table>
 | 
			
		||||
    </div>
 | 
			
		||||
    <t-dialog header="新增首页置顶" :visible="addMode" :onClose="onCloseMy" @confirm="onSubmit"  width="650px">
 | 
			
		||||
    <t-dialog header="新增首页置顶" :closeOnOverlayClick="false" :visible="addMode" :onClose="onCloseMy" @confirm="onSubmit"  width="650px">
 | 
			
		||||
      <t-form>
 | 
			
		||||
        <t-form-item label="活动名称" name="password">
 | 
			
		||||
          <t-select
 | 
			
		||||
 | 
			
		||||
@ -35,7 +35,7 @@
 | 
			
		||||
        </template>
 | 
			
		||||
      </t-table>
 | 
			
		||||
    </div>
 | 
			
		||||
    <t-dialog :header="isEdit?'编辑':'新增'" :visible="addMode" :onClose="onCloseMy" @confirm="onSubmit"
 | 
			
		||||
    <t-dialog :header="isEdit?'编辑':'新增'" :closeOnOverlayClick="false" :visible="addMode" :onClose="onCloseMy" @confirm="onSubmit"
 | 
			
		||||
              width="45%" top="20px">
 | 
			
		||||
      <t-form>
 | 
			
		||||
        <t-form-item label="轮播类型" name="type">
 | 
			
		||||
@ -54,7 +54,7 @@
 | 
			
		||||
          <t-upload
 | 
			
		||||
            :action="$store.state.user.apiUrl+'/api/common/upload'"
 | 
			
		||||
            v-model="addForm.news_image_show"
 | 
			
		||||
            tips="请选择单张图片/视频文件上传"
 | 
			
		||||
            tips="请选择单张图片/视频文件上传(比例:690*298 )"
 | 
			
		||||
            accept="image/*,video/*"
 | 
			
		||||
            :data="{association_id:this.association.association_id}"
 | 
			
		||||
            :showImageFileName="true"
 | 
			
		||||
 | 
			
		||||
@ -9,7 +9,7 @@
 | 
			
		||||
                :action="$store.state.user.apiUrl+'/api/common/upload'"
 | 
			
		||||
                v-model="addForm.association_image_show"
 | 
			
		||||
                theme="image"
 | 
			
		||||
                tips="请选择单张图片文件上传"
 | 
			
		||||
                tips="请选择比例为(1:1)单张图片文件上传"
 | 
			
		||||
                accept="image/*"
 | 
			
		||||
                :format-response="(response) => formatResponse(response, 0)"
 | 
			
		||||
              ></t-upload>
 | 
			
		||||
@ -19,7 +19,7 @@
 | 
			
		||||
                :action="$store.state.user.apiUrl+'/api/common/upload'"
 | 
			
		||||
                v-model="addForm.ico_image_show"
 | 
			
		||||
                theme="image"
 | 
			
		||||
                tips="请选择ICO图片文件上传,用于后台页面标题小图标"
 | 
			
		||||
                tips="请选择比例为(1:1)ICO图片文件上传,用于后台页面标题小图标"
 | 
			
		||||
                accept=".ico"
 | 
			
		||||
                :format-response="(response) => formatResponse(response, 1)"
 | 
			
		||||
              ></t-upload>
 | 
			
		||||
 | 
			
		||||
@ -175,7 +175,7 @@ export default {
 | 
			
		||||
      }
 | 
			
		||||
      const regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&#_-])[A-Za-z\d@$!%*?&#_-]{8,}$/;
 | 
			
		||||
      var pwd_check=regex.test(this.modData.password);
 | 
			
		||||
      if(!pwd_check && !this.isEdit){
 | 
			
		||||
      if(!pwd_check){
 | 
			
		||||
        this.$message.error('密码不符合要求!');
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										136
									
								
								src/pages/business/business_type.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										136
									
								
								src/pages/business/business_type.vue
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,136 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <t-card :bordered="false">
 | 
			
		||||
    <div class="form-step-container">
 | 
			
		||||
      <t-button @click="add">新增类别</t-button>
 | 
			
		||||
      <t-table
 | 
			
		||||
        rowKey="index"
 | 
			
		||||
        :data="list"
 | 
			
		||||
        :columns="columns"
 | 
			
		||||
        :stripe="false"
 | 
			
		||||
        :bordered="false"
 | 
			
		||||
        :hover="true"
 | 
			
		||||
        size="large"
 | 
			
		||||
        table-layout="auto"
 | 
			
		||||
        cellEmptyContent="-"
 | 
			
		||||
      >
 | 
			
		||||
        <template #select="{ row }">
 | 
			
		||||
          <t-space size="24px" v-if="row.id!=0">
 | 
			
		||||
            <t-button theme="warning" @click="edit(row)">编辑</t-button>
 | 
			
		||||
            <t-popconfirm  content="确认删除吗,行业下的会员将归类为:其他行业" @confirm="del(row)">
 | 
			
		||||
              <t-button theme="danger" >删除</t-button>
 | 
			
		||||
            </t-popconfirm>
 | 
			
		||||
          </t-space>
 | 
			
		||||
        </template>
 | 
			
		||||
      </t-table>
 | 
			
		||||
    </div>
 | 
			
		||||
    <t-dialog :header="isEdit?'编辑类别':'新增类别'" :visible="addMode" :onClose="onCloseMy" @confirm="onSubmit">
 | 
			
		||||
      <t-form>
 | 
			
		||||
        <t-form-item label="类别名称" name="name">
 | 
			
		||||
          <t-input placeholder="请输入行业名称" v-model="industry_name"/>
 | 
			
		||||
        </t-form-item>
 | 
			
		||||
        <t-form-item label="类别排序" name="name">
 | 
			
		||||
          <t-input placeholder="请输入类别排序" type="number" v-model="industry_description"/>
 | 
			
		||||
        </t-form-item>
 | 
			
		||||
      </t-form>
 | 
			
		||||
    </t-dialog>
 | 
			
		||||
  </t-card>
 | 
			
		||||
 | 
			
		||||
</template>
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      industry_description:'',
 | 
			
		||||
      industry_name: '',
 | 
			
		||||
      addMode: false,
 | 
			
		||||
      isEdit: false,
 | 
			
		||||
      editID:0,
 | 
			
		||||
      list: [],
 | 
			
		||||
      columns: [
 | 
			
		||||
        {colKey: 'industry_description', title: '排序'},
 | 
			
		||||
        {colKey: 'industry_name', title: '类别名称'},
 | 
			
		||||
        {colKey: 'select', title: '操作', width: 200},
 | 
			
		||||
      ],
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  mounted() {
 | 
			
		||||
    //this.member_id=this.$route.query.id;
 | 
			
		||||
    //this.getList();
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    del(d){
 | 
			
		||||
      console.log(d);
 | 
			
		||||
      this.$request
 | 
			
		||||
        .post('/industry/del',{id:d.id})
 | 
			
		||||
        .then((res) => {
 | 
			
		||||
          if(res.code==1){
 | 
			
		||||
            this.$message.success(res.msg);
 | 
			
		||||
            this.getList();
 | 
			
		||||
          }else {
 | 
			
		||||
            this.$message.error(res.msg);
 | 
			
		||||
          }
 | 
			
		||||
          console.log(res);
 | 
			
		||||
        })
 | 
			
		||||
        .catch((e) => {
 | 
			
		||||
          console.log(e);
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
    add(){
 | 
			
		||||
      this.industry_description='';
 | 
			
		||||
      this.industry_name= '';
 | 
			
		||||
      this.addMode=true;
 | 
			
		||||
      this.isEdit=false;
 | 
			
		||||
    },
 | 
			
		||||
    edit(d){
 | 
			
		||||
      this.editID=d.id;
 | 
			
		||||
      this.industry_name=d.industry_name;
 | 
			
		||||
      this.industry_description=d.industry_description;
 | 
			
		||||
      this.addMode=true;
 | 
			
		||||
      this.isEdit=true;
 | 
			
		||||
    },
 | 
			
		||||
    getList() {
 | 
			
		||||
      this.$request
 | 
			
		||||
        .post("/industry")
 | 
			
		||||
        .then((res) => {
 | 
			
		||||
          console.log(res);
 | 
			
		||||
          this.list = res.data;
 | 
			
		||||
          this.list.push({id:-1,industry_name:'其他行业'});
 | 
			
		||||
        })
 | 
			
		||||
        .catch((e) => {
 | 
			
		||||
          console.log(e);
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
    onSubmit() {
 | 
			
		||||
      if (this.industry_name == '') {
 | 
			
		||||
        this.$message.error('行业名称不能为空');
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      var url='/industry/add';
 | 
			
		||||
      if(this.isEdit){
 | 
			
		||||
        url='/industry/update';
 | 
			
		||||
      }
 | 
			
		||||
      this.$request
 | 
			
		||||
        .post(url,{industry_name:this.industry_name,industry_description:this.industry_description,id:this.editID})
 | 
			
		||||
        .then((res) => {
 | 
			
		||||
          if(res.code==1){
 | 
			
		||||
            this.$message.success(res.msg);
 | 
			
		||||
            this.addMode=false;
 | 
			
		||||
            this.getList();
 | 
			
		||||
          }else {
 | 
			
		||||
            this.$message.error(res.msg);
 | 
			
		||||
          }
 | 
			
		||||
          console.log(res);
 | 
			
		||||
        })
 | 
			
		||||
        .catch((e) => {
 | 
			
		||||
          console.log(e);
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
    onCloseMy() {
 | 
			
		||||
      this.addMode = false;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped lang="less">
 | 
			
		||||
 | 
			
		||||
</style>
 | 
			
		||||
							
								
								
									
										264
									
								
								src/pages/business/index.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										264
									
								
								src/pages/business/index.vue
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,264 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <t-card :bordered="false">
 | 
			
		||||
    <div class="form-step-container">
 | 
			
		||||
      <t-button @click="add">新增商家</t-button>
 | 
			
		||||
      <t-table
 | 
			
		||||
        rowKey="index"
 | 
			
		||||
        :data="list"
 | 
			
		||||
        :columns="columns"
 | 
			
		||||
        :stripe="false"
 | 
			
		||||
        :bordered="false"
 | 
			
		||||
        :hover="true"
 | 
			
		||||
        size="large"
 | 
			
		||||
        table-layout="auto"
 | 
			
		||||
        cellEmptyContent="-"
 | 
			
		||||
      >
 | 
			
		||||
        <template #select="{ row }">
 | 
			
		||||
          <t-space size="24px" v-if="row.id!=0">
 | 
			
		||||
            <t-button theme="warning" @click="edit(row)">编辑</t-button>
 | 
			
		||||
            <t-popconfirm  content="确认删除吗,行业下的会员将归类为:其他行业" @confirm="del(row)">
 | 
			
		||||
              <t-button theme="danger" >删除</t-button>
 | 
			
		||||
            </t-popconfirm>
 | 
			
		||||
          </t-space>
 | 
			
		||||
        </template>
 | 
			
		||||
      </t-table>
 | 
			
		||||
    </div>
 | 
			
		||||
    <t-dialog :header="isEdit?'编辑商家':'新增商家'" :visible="addMode" :onClose="onCloseMy" @confirm="onSubmit"    width="40%" top="20px">
 | 
			
		||||
      <t-form  layout="inline">
 | 
			
		||||
        <t-form-item label="商家Logo">
 | 
			
		||||
          <t-upload
 | 
			
		||||
            :action="$store.state.user.apiUrl+'/api/common/upload'"
 | 
			
		||||
            v-model="addForm.news_image_show"
 | 
			
		||||
            theme="image"
 | 
			
		||||
            tips="请选择单张图片文件上传"
 | 
			
		||||
            accept="image/*"
 | 
			
		||||
            :format-response="formatResponse"
 | 
			
		||||
          ></t-upload>
 | 
			
		||||
        </t-form-item>
 | 
			
		||||
        <div style="width: 100%"></div>
 | 
			
		||||
        <t-form-item label="商家名称" name="name">
 | 
			
		||||
          <t-input placeholder="请输入商家名称"/>
 | 
			
		||||
        </t-form-item>
 | 
			
		||||
        <t-form-item label="商家电话" name="name">
 | 
			
		||||
          <t-input placeholder="请输入商家电话"/>
 | 
			
		||||
        </t-form-item>
 | 
			
		||||
        <t-form-item label="商家类别" name="name">
 | 
			
		||||
          <t-select :style="{ width: '170px' }">
 | 
			
		||||
            <t-option key="1" label="餐饮" value="1"/>
 | 
			
		||||
            <t-option key="2" label="服务" value="2"/>
 | 
			
		||||
            <t-option key="3" label="酒店" value="3"/>
 | 
			
		||||
            <t-option key="4" label="学习" value="4"/>
 | 
			
		||||
          </t-select>
 | 
			
		||||
        </t-form-item>
 | 
			
		||||
        <t-form-item label="商家地址" name="name">
 | 
			
		||||
          <t-input placeholder="请输入商家地址"/>
 | 
			
		||||
        </t-form-item>
 | 
			
		||||
        <t-form-item label="纬度" name="name">
 | 
			
		||||
          <t-input placeholder="请输入商家地址纬度"/>
 | 
			
		||||
        </t-form-item>
 | 
			
		||||
        <t-form-item label="经度" name="name">
 | 
			
		||||
          <t-input placeholder="请输入商家地址经度"/>
 | 
			
		||||
        </t-form-item>
 | 
			
		||||
        <t-form-item label="商家简介" name="association_desc">
 | 
			
		||||
          <div style="border: 1px solid #ccc;width: 467px;">
 | 
			
		||||
            <!-- 工具栏 -->
 | 
			
		||||
            <Toolbar
 | 
			
		||||
              style="border-bottom: 1px solid #ccc"
 | 
			
		||||
              mode="default"
 | 
			
		||||
              :editor="editor"
 | 
			
		||||
              :defaultConfig="toolbarConfig"
 | 
			
		||||
            />
 | 
			
		||||
 | 
			
		||||
            <Editor
 | 
			
		||||
              style="height: 200px"
 | 
			
		||||
              v-model="addForm.association_desc"
 | 
			
		||||
              :defaultConfig="editorConfig"
 | 
			
		||||
              mode="default"
 | 
			
		||||
              @onCreated="(e) => onCreated(e)"
 | 
			
		||||
            />
 | 
			
		||||
          </div>
 | 
			
		||||
        </t-form-item>
 | 
			
		||||
        <t-form-item label="活动介绍" name="association_desc">
 | 
			
		||||
          <div style="border: 1px solid #ccc;width: 467px;">
 | 
			
		||||
            <!-- 工具栏 -->
 | 
			
		||||
            <Toolbar
 | 
			
		||||
              style="border-bottom: 1px solid #ccc"
 | 
			
		||||
              mode="default"
 | 
			
		||||
              :editor="editorHd"
 | 
			
		||||
              :defaultConfig="toolbarConfig"
 | 
			
		||||
            />
 | 
			
		||||
 | 
			
		||||
            <Editor
 | 
			
		||||
              style="height: 200px"
 | 
			
		||||
              v-model="addForm.dd"
 | 
			
		||||
              :defaultConfig="editorConfig"
 | 
			
		||||
              mode="default"
 | 
			
		||||
              @onCreated="(e) => onCreatedHd(e)"
 | 
			
		||||
            />
 | 
			
		||||
          </div>
 | 
			
		||||
        </t-form-item>
 | 
			
		||||
      </t-form>
 | 
			
		||||
    </t-dialog>
 | 
			
		||||
  </t-card>
 | 
			
		||||
 | 
			
		||||
</template>
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import store from "@/store";
 | 
			
		||||
import {Editor, Toolbar} from '@wangeditor/editor-for-vue';
 | 
			
		||||
export default {
 | 
			
		||||
  components: {Editor, Toolbar},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      addForm:{},
 | 
			
		||||
      addMode: false,
 | 
			
		||||
      isEdit: false,
 | 
			
		||||
      editID:0,
 | 
			
		||||
      list: [],
 | 
			
		||||
      columns: [
 | 
			
		||||
        {colKey: 'a1', title: '商家LOGO'},
 | 
			
		||||
        {colKey: 'a2', title: '商家名称'},
 | 
			
		||||
        {colKey: 'a3', title: '商家电话'},
 | 
			
		||||
        {colKey: 'a4', title: '商家地址'},
 | 
			
		||||
        {colKey: 'a5', title: '商家简介'},
 | 
			
		||||
        {colKey: 'a6', title: '商家活动'},
 | 
			
		||||
        {colKey: 'select', title: '操作', width: 200},
 | 
			
		||||
      ],
 | 
			
		||||
      editor: null,
 | 
			
		||||
      editorHd:null,
 | 
			
		||||
      toolbarConfig: {
 | 
			
		||||
        showLinkImg: false,
 | 
			
		||||
        uploadImgShowBase64: true,
 | 
			
		||||
        excludeKeys: [
 | 
			
		||||
          'insertVideo', // 删除视频
 | 
			
		||||
          'uploadVideo',
 | 
			
		||||
          'group-video',
 | 
			
		||||
          'insertImage',// 删除网络图片上传
 | 
			
		||||
          'insertLink',// 删除链接
 | 
			
		||||
          'insertTable',// 删除表格
 | 
			
		||||
          'codeBlock',// 删除代码块
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      editorConfig: {
 | 
			
		||||
        placeholder: '',
 | 
			
		||||
        readOnly: false, // 是否只允许阅读,不可编辑
 | 
			
		||||
        autoFocus: true,
 | 
			
		||||
        MENU_CONF: {
 | 
			
		||||
          uploadImage: {
 | 
			
		||||
            server: store.state.user.apiUrl + '/api/common/upload',
 | 
			
		||||
            fieldName: 'file',
 | 
			
		||||
            meta:{
 | 
			
		||||
              association_id: 0,
 | 
			
		||||
            },
 | 
			
		||||
            customInsert(res: any, insertFn: InsertFnType) {  // TS 语法
 | 
			
		||||
              // customInsert(res, insertFn) {                  // JS 语法
 | 
			
		||||
              // res 即服务端的返回结果
 | 
			
		||||
              console.log(res);
 | 
			
		||||
              // 从 res 中找到 url alt href ,然后插入图片
 | 
			
		||||
              insertFn(res.data.fullurl, '', '')
 | 
			
		||||
            },
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  beforeDestroy() {
 | 
			
		||||
    const editor = this.editor
 | 
			
		||||
    if (editor == null) return
 | 
			
		||||
    editor.destroy() // 组件销毁时,及时销毁编辑器
 | 
			
		||||
  },
 | 
			
		||||
  mounted() {
 | 
			
		||||
    if(typeof (store.state.user.association)=='object'){
 | 
			
		||||
      this.association=store.state.user.association;
 | 
			
		||||
    }else{
 | 
			
		||||
      this.association=JSON.parse(store.state.user.association);
 | 
			
		||||
    }
 | 
			
		||||
    this.editorConfig.MENU_CONF.uploadImage.meta.association_id=this.association.association_id;
 | 
			
		||||
    //this.getList();
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    onCreated(editor) {
 | 
			
		||||
      this.editor = Object.seal(editor);
 | 
			
		||||
    },
 | 
			
		||||
    onCreatedHd(editor){
 | 
			
		||||
      this.editorHd = Object.seal(editor);
 | 
			
		||||
    },
 | 
			
		||||
    formatResponse(res) {
 | 
			
		||||
      console.log(res);
 | 
			
		||||
      this.addForm.news_image = res.data.url;
 | 
			
		||||
      return {url: res.data.fullurl};
 | 
			
		||||
    },
 | 
			
		||||
    del(d){
 | 
			
		||||
      console.log(d);
 | 
			
		||||
      this.$request
 | 
			
		||||
        .post('/industry/del',{id:d.id})
 | 
			
		||||
        .then((res) => {
 | 
			
		||||
          if(res.code==1){
 | 
			
		||||
            this.$message.success(res.msg);
 | 
			
		||||
            this.getList();
 | 
			
		||||
          }else {
 | 
			
		||||
            this.$message.error(res.msg);
 | 
			
		||||
          }
 | 
			
		||||
          console.log(res);
 | 
			
		||||
        })
 | 
			
		||||
        .catch((e) => {
 | 
			
		||||
          console.log(e);
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
    add(){
 | 
			
		||||
      this.industry_description='';
 | 
			
		||||
      this.industry_name= '';
 | 
			
		||||
      this.addMode=true;
 | 
			
		||||
      this.isEdit=false;
 | 
			
		||||
    },
 | 
			
		||||
    edit(d){
 | 
			
		||||
      this.editID=d.id;
 | 
			
		||||
      this.industry_name=d.industry_name;
 | 
			
		||||
      this.industry_description=d.industry_description;
 | 
			
		||||
      this.addMode=true;
 | 
			
		||||
      this.isEdit=true;
 | 
			
		||||
    },
 | 
			
		||||
    getList() {
 | 
			
		||||
      this.$request
 | 
			
		||||
        .post("/industry")
 | 
			
		||||
        .then((res) => {
 | 
			
		||||
          console.log(res);
 | 
			
		||||
          this.list = res.data;
 | 
			
		||||
          this.list.push({id:-1,industry_name:'其他行业'});
 | 
			
		||||
        })
 | 
			
		||||
        .catch((e) => {
 | 
			
		||||
          console.log(e);
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
    onSubmit() {
 | 
			
		||||
      if (this.industry_name == '') {
 | 
			
		||||
        this.$message.error('行业名称不能为空');
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      var url='/industry/add';
 | 
			
		||||
      if(this.isEdit){
 | 
			
		||||
        url='/industry/update';
 | 
			
		||||
      }
 | 
			
		||||
      this.$request
 | 
			
		||||
        .post(url,{industry_name:this.industry_name,industry_description:this.industry_description,id:this.editID})
 | 
			
		||||
        .then((res) => {
 | 
			
		||||
          if(res.code==1){
 | 
			
		||||
            this.$message.success(res.msg);
 | 
			
		||||
            this.addMode=false;
 | 
			
		||||
            this.getList();
 | 
			
		||||
          }else {
 | 
			
		||||
            this.$message.error(res.msg);
 | 
			
		||||
          }
 | 
			
		||||
          console.log(res);
 | 
			
		||||
        })
 | 
			
		||||
        .catch((e) => {
 | 
			
		||||
          console.log(e);
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
    onCloseMy() {
 | 
			
		||||
      this.addMode = false;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style src="@wangeditor/editor/dist/css/style.css"></style>
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										80
									
								
								src/pages/dashboard/admin_pwd.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								src/pages/dashboard/admin_pwd.vue
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,80 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <t-card :bordered="false" style="padding: 20px">
 | 
			
		||||
    <t-row :gutter="[16, 16]">
 | 
			
		||||
      <t-col :span="5" :offset="3">
 | 
			
		||||
        <t-form :labelWidth="150">
 | 
			
		||||
          <t-form-item label="账户名">
 | 
			
		||||
            <t-input size="large" disabled="" placeholder="请输入账户名" v-model="form.zhanghu"/>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="旧密码">
 | 
			
		||||
            <t-input size="large" type="password" placeholder="请输入旧密码" v-model="form.old_password"/>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="新密码">
 | 
			
		||||
            <t-input size="large" type="password" placeholder="请输入新密码" v-model="form.new_password"/>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
        </t-form>
 | 
			
		||||
        <div style="text-align: center;margin-top: 30px">
 | 
			
		||||
          <t-button @click="doSubmit" theme="primary" style="width: 200px">确定</t-button>
 | 
			
		||||
        </div>
 | 
			
		||||
      </t-col>
 | 
			
		||||
    </t-row>
 | 
			
		||||
  </t-card>
 | 
			
		||||
</template>
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import store from "@/store";
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      association:{},
 | 
			
		||||
      form:{
 | 
			
		||||
        zhanghu:'',
 | 
			
		||||
        old_password:'',
 | 
			
		||||
        new_password:'',
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  mounted() {
 | 
			
		||||
    if(typeof (store.state.user.association)=='object'){
 | 
			
		||||
      this.association=store.state.user.association;
 | 
			
		||||
    }else{
 | 
			
		||||
      this.association=JSON.parse(store.state.user.association);
 | 
			
		||||
    }
 | 
			
		||||
    this.form.zhanghu=this.association.zhanghu;
 | 
			
		||||
    console.log( this.association);
 | 
			
		||||
    //this.member_id=this.$route.query.id;
 | 
			
		||||
    //this.getList();
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    doSubmit() {
 | 
			
		||||
      this.$request
 | 
			
		||||
        .post("/association/updateAdminPassword",this.form)
 | 
			
		||||
        .then((res) => {
 | 
			
		||||
          console.log(res);
 | 
			
		||||
          if(res.code==0){
 | 
			
		||||
            this.$message.error(res.msg);
 | 
			
		||||
          }else{
 | 
			
		||||
            this.$message.success(res.msg);
 | 
			
		||||
            setTimeout(()=>{
 | 
			
		||||
              this.handleLogout();
 | 
			
		||||
            },2000)
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        .catch((e) => {
 | 
			
		||||
          console.log(e);
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
    async handleLogout() {
 | 
			
		||||
      await store.commit('user/removeAssociation');
 | 
			
		||||
      await store.commit('user/removeToken');
 | 
			
		||||
      await store.commit('user/setUserInfo', []);
 | 
			
		||||
      this.$router.replace('/').catch(() => '');
 | 
			
		||||
      localStorage.removeItem('reload');
 | 
			
		||||
      this.$router.push('/login');
 | 
			
		||||
      //this.$router.push(`/login?redirect=${this.$router.history.current.fullPath}`);
 | 
			
		||||
    },
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped lang="less">
 | 
			
		||||
 | 
			
		||||
</style>
 | 
			
		||||
@ -59,8 +59,8 @@
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script>
 | 
			
		||||
import {UserIcon, LockOnIcon} from 'tdesign-icons-vue';
 | 
			
		||||
 | 
			
		||||
import {UserIcon, LockOnIcon, ViewListIcon} from 'tdesign-icons-vue';
 | 
			
		||||
import Layout from "@/layouts/index.vue";
 | 
			
		||||
export default {
 | 
			
		||||
  components: {
 | 
			
		||||
    UserIcon,
 | 
			
		||||
@ -131,7 +131,6 @@ export default {
 | 
			
		||||
            }else{
 | 
			
		||||
              await this.$store.dispatch('user/login', res.data);
 | 
			
		||||
              this.$message.success('登录成功');
 | 
			
		||||
 | 
			
		||||
              setTimeout(() => {
 | 
			
		||||
                window.location.reload();
 | 
			
		||||
              }, 0);
 | 
			
		||||
 | 
			
		||||
@ -36,18 +36,18 @@
 | 
			
		||||
        ></t-pagination>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <t-dialog :header="isEdit?'编辑新闻':'新增新闻'" :visible="addMode" :onClose="onCloseMy" @confirm="onSubmit"
 | 
			
		||||
    <t-dialog :header="isEdit?'编辑新闻':'新增新闻'" :closeOnOverlayClick="false" :visible="addMode" :onClose="onCloseMy" @confirm="onSubmit"
 | 
			
		||||
              width="45%" top="20px">
 | 
			
		||||
      <t-form>
 | 
			
		||||
        <t-form-item label="文章标题" name="news_title">
 | 
			
		||||
        <t-form-item label="文章标题" name="news_title" :requiredMark="true">
 | 
			
		||||
          <t-input placeholder="请输入文章标题" v-model="addForm.news_title"/>
 | 
			
		||||
        </t-form-item>
 | 
			
		||||
        <t-form-item label="简短标题" name="news_titleshort">
 | 
			
		||||
          <t-input placeholder="请输入简短标题" v-model="addForm.news_titleshort"/>
 | 
			
		||||
        </t-form-item>
 | 
			
		||||
        <t-form-item label="所属类目" name="activity_location">
 | 
			
		||||
        <t-form-item label="所属类目" name="activity_location" :requiredMark="true">
 | 
			
		||||
          <t-select v-model="addForm.gory_id">
 | 
			
		||||
            <t-option v-for="(item,index) in gory_list" :key="index" :label="item.name" :value="item.id" />
 | 
			
		||||
            <t-option v-for="(item,index) in gory_list" :key="index" :label="item.name" :value="item.id"/>
 | 
			
		||||
          </t-select>
 | 
			
		||||
        </t-form-item>
 | 
			
		||||
        <t-form-item label="作者" name="news_auto">
 | 
			
		||||
@ -56,6 +56,9 @@
 | 
			
		||||
        <t-form-item label="来源" name="news_source">
 | 
			
		||||
          <t-input placeholder="请输入来源" v-model="addForm.news_source"/>
 | 
			
		||||
        </t-form-item>
 | 
			
		||||
        <t-form-item label="微信文章链接" help="请登录公众号->广告与服务->小程序管理->添加关联小程序->搜索 (洛商协)" name="wx_url">
 | 
			
		||||
          <t-input placeholder="请输入微信文章链接" v-model="addForm.wx_url"/>
 | 
			
		||||
        </t-form-item>
 | 
			
		||||
        <t-form-item label="点击量" name="news_source">
 | 
			
		||||
          <t-input placeholder="请输入自定义点击量" v-model="addForm.news_hits"/>
 | 
			
		||||
        </t-form-item>
 | 
			
		||||
@ -89,8 +92,8 @@
 | 
			
		||||
          ></t-upload>
 | 
			
		||||
        </t-form-item>
 | 
			
		||||
        <t-form-item
 | 
			
		||||
                     label="展示时间"
 | 
			
		||||
                     name="days">
 | 
			
		||||
          label="展示时间"
 | 
			
		||||
          name="days">
 | 
			
		||||
          <t-date-picker :style="{ width: '200px' }" :clearable="true" placeholder="展示时间"
 | 
			
		||||
                         :enableTimePicker="true" :allow-input="false"
 | 
			
		||||
                         v-model="addForm.showtime"></t-date-picker>
 | 
			
		||||
@ -119,15 +122,16 @@ export default {
 | 
			
		||||
        news_source: '',
 | 
			
		||||
        news_content: '',
 | 
			
		||||
        news_image: '',
 | 
			
		||||
        news_image_show:[],
 | 
			
		||||
        showtime:'',
 | 
			
		||||
        news_hits:0,
 | 
			
		||||
        news_image_show: [],
 | 
			
		||||
        showtime: '',
 | 
			
		||||
        news_hits: 0,
 | 
			
		||||
        wx_url: ''
 | 
			
		||||
      },
 | 
			
		||||
      addMode: false,
 | 
			
		||||
      isEdit: false,
 | 
			
		||||
      editID: 0,
 | 
			
		||||
      list: [],
 | 
			
		||||
      gory_list:[],
 | 
			
		||||
      gory_list: [],
 | 
			
		||||
      columns: [
 | 
			
		||||
        {colKey: 'news_title', title: '新闻标题', align: 'center', width: 300},
 | 
			
		||||
        {colKey: 'name', title: '所属类目', align: 'center'},
 | 
			
		||||
@ -163,7 +167,7 @@ export default {
 | 
			
		||||
          uploadImage: {
 | 
			
		||||
            server: store.state.user.apiUrl + '/api/common/upload',
 | 
			
		||||
            fieldName: 'file',
 | 
			
		||||
            meta:{
 | 
			
		||||
            meta: {
 | 
			
		||||
              association_id: 0,
 | 
			
		||||
            },
 | 
			
		||||
            customInsert(res: any, insertFn: InsertFnType) {  // TS 语法
 | 
			
		||||
@ -196,16 +200,22 @@ export default {
 | 
			
		||||
  },
 | 
			
		||||
  mounted() {
 | 
			
		||||
    //this.member_id=this.$route.query.id;
 | 
			
		||||
    if(typeof (store.state.user.association)=='object'){
 | 
			
		||||
      this.association=store.state.user.association;
 | 
			
		||||
    }else{
 | 
			
		||||
      this.association=JSON.parse(store.state.user.association);
 | 
			
		||||
    if (typeof (store.state.user.association) == 'object') {
 | 
			
		||||
      this.association = store.state.user.association;
 | 
			
		||||
    } else {
 | 
			
		||||
      this.association = JSON.parse(store.state.user.association);
 | 
			
		||||
    }
 | 
			
		||||
    this.editorConfig.MENU_CONF.uploadImage.meta.association_id=this.association.id;
 | 
			
		||||
    this.editorConfig.MENU_CONF.uploadImage.meta.association_id = this.association.id;
 | 
			
		||||
    this.getList();
 | 
			
		||||
    this.getGory();
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    getRandomThreeDigitNumber() {
 | 
			
		||||
      // Math.random() 生成[0, 1)之间的随机数
 | 
			
		||||
      // 乘以900得到[0, 900)的数,再加上100确保结果在[100, 1000)之间
 | 
			
		||||
      // 使用Math.floor向下取整,得到整数
 | 
			
		||||
      return Math.floor(Math.random() * 900) + 100;
 | 
			
		||||
    },
 | 
			
		||||
    onCurrentChange(d) {
 | 
			
		||||
      this.pagination.page = d;
 | 
			
		||||
      this.getList();
 | 
			
		||||
@ -218,10 +228,10 @@ export default {
 | 
			
		||||
    onCreated(editor) {
 | 
			
		||||
      this.editor = Object.seal(editor);
 | 
			
		||||
    },
 | 
			
		||||
    topNews(row){
 | 
			
		||||
    topNews(row) {
 | 
			
		||||
      console.log(row);
 | 
			
		||||
      this.$request
 | 
			
		||||
        .post('/common/listtopping', {id: row.news_id,type:'news'})
 | 
			
		||||
        .post('/common/listtopping', {id: row.news_id, type: 'news'})
 | 
			
		||||
        .then((res) => {
 | 
			
		||||
          if (res.code == 1) {
 | 
			
		||||
            this.$message.success('置顶成功');
 | 
			
		||||
@ -235,10 +245,10 @@ export default {
 | 
			
		||||
          console.log(e);
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
    topNewsDel(row){
 | 
			
		||||
    topNewsDel(row) {
 | 
			
		||||
      console.log(row);
 | 
			
		||||
      this.$request
 | 
			
		||||
        .post('/common/listcancel', {id: row.news_id,type:'news'})
 | 
			
		||||
        .post('/common/listcancel', {id: row.news_id, type: 'news'})
 | 
			
		||||
        .then((res) => {
 | 
			
		||||
          if (res.code == 1) {
 | 
			
		||||
            this.$message.success('取消置顶成功');
 | 
			
		||||
@ -272,17 +282,18 @@ export default {
 | 
			
		||||
    add() {
 | 
			
		||||
      this.addMode = true;
 | 
			
		||||
      this.isEdit = false;
 | 
			
		||||
      this.addForm={
 | 
			
		||||
      this.addForm = {
 | 
			
		||||
        news_title: '',
 | 
			
		||||
          news_titleshort: '',
 | 
			
		||||
          gory_id: null,
 | 
			
		||||
          news_auto: '',
 | 
			
		||||
          news_source: '',
 | 
			
		||||
          news_content: '',
 | 
			
		||||
          news_image: '',
 | 
			
		||||
          news_image_show:[],
 | 
			
		||||
          showtime:'',
 | 
			
		||||
        news_hits:0,
 | 
			
		||||
        news_titleshort: '',
 | 
			
		||||
        gory_id: null,
 | 
			
		||||
        news_auto: '',
 | 
			
		||||
        news_source: '',
 | 
			
		||||
        news_content: '',
 | 
			
		||||
        news_image: '',
 | 
			
		||||
        news_image_show: [],
 | 
			
		||||
        showtime: '',
 | 
			
		||||
        wx_url: '',
 | 
			
		||||
        news_hits: this.getRandomThreeDigitNumber(),
 | 
			
		||||
      };
 | 
			
		||||
    },
 | 
			
		||||
    edit(d) {
 | 
			
		||||
@ -298,6 +309,7 @@ export default {
 | 
			
		||||
      this.addForm.news_content = d.news_content;
 | 
			
		||||
      this.addForm.showtime = d.showtime
 | 
			
		||||
      this.addForm.news_hits = d.news_hits;
 | 
			
		||||
      this.addForm.wx_url = d.wx_url;
 | 
			
		||||
      this.addMode = true;
 | 
			
		||||
      this.isEdit = true;
 | 
			
		||||
    },
 | 
			
		||||
@ -316,13 +328,13 @@ export default {
 | 
			
		||||
          console.log(e);
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
    getGory(){
 | 
			
		||||
    getGory() {
 | 
			
		||||
      this.$request
 | 
			
		||||
        .post("/gory/index")
 | 
			
		||||
        .then((res) => {
 | 
			
		||||
          console.log(res);
 | 
			
		||||
          if (res.code == 1) {
 | 
			
		||||
            this.gory_list=res.data;
 | 
			
		||||
            this.gory_list = res.data;
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        .catch((e) => {
 | 
			
		||||
@ -335,31 +347,31 @@ export default {
 | 
			
		||||
        this.$message.error('新闻标题不能为空');
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      if (this.addForm.news_titleshort == '') {
 | 
			
		||||
        this.$message.error('简短标题不能为空');
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      // if (this.addForm.news_titleshort == '') {
 | 
			
		||||
      //   this.$message.error('简短标题不能为空');
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      if (this.addForm.gory_id == null) {
 | 
			
		||||
        this.$message.error('请选择新闻分类');
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      if (this.addForm.news_auto == '') {
 | 
			
		||||
        this.$message.error('作者不能为空');
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      if (this.addForm.news_source == '') {
 | 
			
		||||
        this.$message.error('来源不能为空');
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      if (this.addForm.news_content == '') {
 | 
			
		||||
        this.$message.error('详情不能为空');
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      if (this.addForm.news_image=='') {
 | 
			
		||||
        this.$message.error('新闻主图不能为空');
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      if (this.addForm.showtime=='') {
 | 
			
		||||
      // if (this.addForm.news_auto == '') {
 | 
			
		||||
      //   this.$message.error('作者不能为空');
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      // if (this.addForm.news_source == '') {
 | 
			
		||||
      //   this.$message.error('来源不能为空');
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      // if (this.addForm.news_content == '') {
 | 
			
		||||
      //   this.$message.error('详情不能为空');
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      // if (this.addForm.news_image=='') {
 | 
			
		||||
      //   this.$message.error('新闻主图不能为空');
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      if (this.addForm.showtime == '') {
 | 
			
		||||
        this.$message.error('展示时间不能为空');
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -23,7 +23,7 @@
 | 
			
		||||
        </template>
 | 
			
		||||
      </t-table>
 | 
			
		||||
    </div>
 | 
			
		||||
    <t-dialog header="类目管理" :visible="addMode" :onClose="onCloseMy" @confirm="onSubmit">
 | 
			
		||||
    <t-dialog header="类目管理" :closeOnOverlayClick="false" :visible="addMode" :onClose="onCloseMy" @confirm="onSubmit">
 | 
			
		||||
      <t-form>
 | 
			
		||||
        <t-form-item label="类目名称" name="name">
 | 
			
		||||
          <t-input placeholder="请输入类目名称" v-model="name"/>
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										755
									
								
								src/pages/user/user_add.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										755
									
								
								src/pages/user/user_add.vue
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,755 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="detail-base">
 | 
			
		||||
    <t-card title="新增会员" :bordered="false" class="info-block">
 | 
			
		||||
      <div style="padding: 20px">
 | 
			
		||||
        <div style="padding-bottom: 20px;font-weight: bold">登陆信息</div>
 | 
			
		||||
        <t-form
 | 
			
		||||
          layout="inline"
 | 
			
		||||
          labelAlign="top"
 | 
			
		||||
        >
 | 
			
		||||
          <t-form-item label="手机号" name="phone" :requiredMark="true">
 | 
			
		||||
            <t-input v-model="formData.phone" placeholder="请输入手机号"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="密码" name="password">
 | 
			
		||||
            <t-input v-model="formData.password" placeholder="请输入密码"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="职位" name="position_id">
 | 
			
		||||
            <t-select v-model="formData.position_id" :style="{ width: '200px' }">
 | 
			
		||||
              <t-option v-for="(item,index) in plan_list" :label="item.position_name" :value="item.id"></t-option>
 | 
			
		||||
            </t-select>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="行业" name="industry_id">
 | 
			
		||||
            <t-select v-model="formData.industry_id" :style="{ width: '200px' }">
 | 
			
		||||
              <t-option v-for="(item,index) in industry_list" :label="item.industry_name" :value="item.id"></t-option>
 | 
			
		||||
            </t-select>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="区域" name="region_id">
 | 
			
		||||
            <t-select v-model="formData.region_id" :style="{ width: '200px' }">
 | 
			
		||||
              <t-option v-for="(item,index) in region_list" :label="item.region_name" :value="item.id"></t-option>
 | 
			
		||||
            </t-select>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
        </t-form>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div style="padding: 20px">
 | 
			
		||||
        <div style="padding-bottom: 20px;font-weight: bold">人员信息</div>
 | 
			
		||||
        <t-form
 | 
			
		||||
          labelAlign="top"
 | 
			
		||||
          layout="inline"
 | 
			
		||||
        >
 | 
			
		||||
          <t-form-item label="会员姓名" name="nikename" :requiredMark="true">
 | 
			
		||||
            <t-input v-model="formData.nikename" placeholder="请输入会员姓名"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
 | 
			
		||||
          <t-form-item label="性别" name="gender">
 | 
			
		||||
            <t-select v-model="formData.gender" :style="{ width: '200px' }">
 | 
			
		||||
              <t-option key="0" label="女" value="0"></t-option>
 | 
			
		||||
              <t-option key="1" label="男" value="1"></t-option>
 | 
			
		||||
            </t-select>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="民族" name="nation">
 | 
			
		||||
            <t-input v-model="formData.nation" placeholder="请输入民族"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="政治面貌" name="political">
 | 
			
		||||
            <t-input v-model="formData.political" placeholder="请输入政治面貌"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="出生日期" name="birth_time">
 | 
			
		||||
            <t-date-picker :style="{ width: '200px' }" v-model="formData.birth_time"/>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="身份证号码" name="card_number">
 | 
			
		||||
            <t-input v-model="formData.card_number" placeholder="请输入身份证号码"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="籍贯" name="jiguan">
 | 
			
		||||
            <t-input v-model="formData.jiguan" placeholder="请输入籍贯"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="毕业院校" name="institution">
 | 
			
		||||
            <t-input v-model="formData.institution" placeholder="请输入毕业院校"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="学历" name="education">
 | 
			
		||||
            <t-input v-model="formData.education" placeholder="请输入学历"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="学位" name="academic_degree">
 | 
			
		||||
            <t-input v-model="formData.academic_degree" placeholder="请输入学位"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <!--          <t-form-item label="工作单位" name="academic_degree">-->
 | 
			
		||||
          <!--            <t-input v-model="formData.work_unit" placeholder="请输入工作单位"></t-input>-->
 | 
			
		||||
          <!--          </t-form-item>-->
 | 
			
		||||
          <t-form-item label="单位职务" name="unit_position">
 | 
			
		||||
            <t-input v-model="formData.unit_position" placeholder="请输入单位职务"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="微信号" name="wx_number">
 | 
			
		||||
            <t-input v-model="formData.wx_number" placeholder="请输入微信号"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="邮箱" name="mailbox">
 | 
			
		||||
            <t-input v-model="formData.mailbox" placeholder="请输入邮箱"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="固定电话" name="fixed_telephone">
 | 
			
		||||
            <t-input v-model="formData.fixed_telephone" placeholder="请输入固定电话"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="其他社会职务" name="other_social_positions">
 | 
			
		||||
            <t-input v-model="formData.other_social_positions" placeholder="请输入其他社会职务"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="其他联系人" name="other_contacts">
 | 
			
		||||
            <t-input v-model="formData.other_contacts" placeholder="请输入其他联系人"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <!--          <t-form-item label="意向协会职务" name="position">-->
 | 
			
		||||
          <!--            <t-input v-model="formData.position" placeholder="请输入意向协会职务"></t-input>-->
 | 
			
		||||
          <!--          </t-form-item>-->
 | 
			
		||||
          <t-form-item label="自我介绍" name="introduction">
 | 
			
		||||
            <t-textarea placeholder="请输入自我介绍" :autosize="{ minRows: 3, maxRows: 5 }"
 | 
			
		||||
                        v-model="formData.introduction"/>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="主要成就以及获奖情况" name="achievement_award">
 | 
			
		||||
            <t-textarea placeholder="请输入主要成就以及获奖情况" :autosize="{ minRows: 3, maxRows: 5 }"
 | 
			
		||||
                        v-model="formData.achievement_award"/>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
        </t-form>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div style="padding: 0px 20px">
 | 
			
		||||
        <t-form labelAlign="top"
 | 
			
		||||
                layout="inline">
 | 
			
		||||
          <t-form-item label="形象照">
 | 
			
		||||
            <div class="t-upload" @click="openCai">
 | 
			
		||||
              <div class="t-upload__card-container" style="cursor: pointer">
 | 
			
		||||
                <img :src="$store.state.user.apiUrl+formData.photo_image" style="width: 110px;height: 110px;" v-if="formData.photo_image!=''">
 | 
			
		||||
                <svg fill="none" viewBox="0 0 24 24" width="1em" height="1em" class="t-icon t-icon-add" v-if="formData.photo_image==''">
 | 
			
		||||
                  <path fill="currentColor" d="M13 4v7h7v2h-7v7h-2v-7H4v-2h7V4h2z"></path>
 | 
			
		||||
                </svg>
 | 
			
		||||
                <p class="t-size-s t-upload__add-text" v-if="formData.photo_image==''">点击上传图片</p>
 | 
			
		||||
              </div>
 | 
			
		||||
              <small class="t-upload__tips t-size-s">请选择身份证正面照</small>
 | 
			
		||||
            </div>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="身份证正面照">
 | 
			
		||||
            <t-upload
 | 
			
		||||
              :action="$store.state.user.apiUrl+'/api/common/upload'"
 | 
			
		||||
              v-model="formData.cardz_image_show"
 | 
			
		||||
              theme="image"
 | 
			
		||||
              :data="{association_id:this.association.association_id}"
 | 
			
		||||
              tips="请选择身份证正面照"
 | 
			
		||||
              accept="image/*"
 | 
			
		||||
              :format-response="(response) => formatResponse(response, 1)"
 | 
			
		||||
            ></t-upload>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="身份证反面照">
 | 
			
		||||
            <t-upload
 | 
			
		||||
              :action="$store.state.user.apiUrl+'/api/common/upload'"
 | 
			
		||||
              v-model="formData.cardf_image_show"
 | 
			
		||||
              :data="{association_id:this.association.association_id}"
 | 
			
		||||
              theme="image"
 | 
			
		||||
              tips="请选择身份证反面照"
 | 
			
		||||
              accept="image/*"
 | 
			
		||||
              :format-response="(response) => formatResponse(response, 2)"
 | 
			
		||||
            ></t-upload>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
        </t-form>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div style="padding: 20px">
 | 
			
		||||
        <div style="padding: 20px 0px;font-weight: bold">企业信息</div>
 | 
			
		||||
        <t-form labelAlign="top"
 | 
			
		||||
                layout="inline">
 | 
			
		||||
          <t-form-item label="营业执照">
 | 
			
		||||
            <t-upload
 | 
			
		||||
              :action="$store.state.user.apiUrl+'/api/common/upload'"
 | 
			
		||||
              v-model="formData.business_license_image_show"
 | 
			
		||||
              theme="image"
 | 
			
		||||
              :data="{association_id:this.association.association_id}"
 | 
			
		||||
              tips="请选择营业执照"
 | 
			
		||||
              accept="image/*"
 | 
			
		||||
              :format-response="(response) => formatResponse(response, 3)"
 | 
			
		||||
            ></t-upload>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="公司Logo">
 | 
			
		||||
            <t-upload
 | 
			
		||||
              :action="$store.state.user.apiUrl+'/api/common/upload'"
 | 
			
		||||
              v-model="formData.company_image_show"
 | 
			
		||||
              theme="image"
 | 
			
		||||
              :data="{association_id:this.association.association_id}"
 | 
			
		||||
              tips="请选择营业执照"
 | 
			
		||||
              accept="image/*"
 | 
			
		||||
              :format-response="(response) => formatResponse(response, 5)"
 | 
			
		||||
            ></t-upload>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="统一社会信用代码" name="unified_code">
 | 
			
		||||
            <t-input v-model="formData.unified_code" placeholder="请输入统一社会信用代码"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="企业名称" name="enterprise_name" :requiredMark="true">
 | 
			
		||||
            <t-input v-model="formData.enterprise_name" placeholder="请输入企业名称"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="企业性质" name="enterprise_nature">
 | 
			
		||||
            <t-input v-model="formData.enterprise_nature" placeholder="请输入企业性质"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="企业网址" name="enterprise_website">
 | 
			
		||||
            <t-input v-model="formData.enterprise_website" placeholder="请输入企业网址"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="是否上市" name="if_list">
 | 
			
		||||
            <t-select v-model="formData.if_list" :style="{ width: '200px' }">
 | 
			
		||||
              <t-option key="0" label="是" value="0"></t-option>
 | 
			
		||||
              <t-option key="1" label="否" value="1"></t-option>
 | 
			
		||||
            </t-select>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="员工人数" name="employee">
 | 
			
		||||
            <t-input v-model="formData.employee" placeholder="请输入员工人数"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="企业地址" name="enterprise_location">
 | 
			
		||||
            <t-input v-model="formData.enterprise_location" placeholder="请输入企业地址"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="上年度营业额" name="previous_revenue">
 | 
			
		||||
            <t-input v-model="formData.previous_revenue" placeholder="请输入上年度营业额"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="上年度纳税额" name="previous_tax">
 | 
			
		||||
            <t-input v-model="formData.previous_tax" placeholder="请输入上年度纳税额"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="上年度净利润" name="previous_profit">
 | 
			
		||||
            <t-input v-model="formData.previous_profit" placeholder="请输入上年度净利润"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="上年度公益性捐赠支出" name="previous_donation">
 | 
			
		||||
            <t-input v-model="formData.previous_donation" placeholder="上年度公益性捐赠支出"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="其他企业任职情况" name="qitaqiyerenzhiqingkuang">
 | 
			
		||||
            <t-input v-model="formData.qitaqiyerenzhiqingkuang" placeholder="其他企业任职情况"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="公司介绍" name="enterprise_Introduction">
 | 
			
		||||
            <t-textarea placeholder="请输入企业介绍" :autosize="{ minRows: 3, maxRows: 5 }"
 | 
			
		||||
                        v-model="formData.enterprise_Introduction"/>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="业务介绍" name="introdiction">
 | 
			
		||||
            <t-textarea placeholder="请输入业务介绍" :autosize="{ minRows: 3, maxRows: 5 }"
 | 
			
		||||
                        v-model="formData.introdiction"/>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="企业所获荣誉以及专利" name="enterprise_honor">
 | 
			
		||||
            <t-textarea placeholder="请输入企业所获荣誉以及专利" :autosize="{ minRows: 3, maxRows: 5 }"
 | 
			
		||||
                        v-model="formData.enterprise_honor"/>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
        </t-form>
 | 
			
		||||
        <t-form labelAlign="top"
 | 
			
		||||
                layout="inline">
 | 
			
		||||
          <t-form-item label="是否建立团组织" name="if_organization">
 | 
			
		||||
            <t-select v-model="formData.if_organization" :style="{ width: '200px' }">
 | 
			
		||||
              <t-option key="0" label="是" value="0"></t-option>
 | 
			
		||||
              <t-option key="1" label="否" value="1"></t-option>
 | 
			
		||||
            </t-select>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
        </t-form>
 | 
			
		||||
        <t-form v-if="formData.if_organization==0" labelAlign="top"
 | 
			
		||||
                layout="inline">
 | 
			
		||||
          <t-form-item label="团组织性质" name="nature">
 | 
			
		||||
            <t-input v-model="formData.nature" placeholder="团组织性质"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="建团时间" name="jiantuan_time">
 | 
			
		||||
            <t-date-picker :style="{ width: '200px' }" v-model="formData.jiantuan_time"/>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="建团人数" name="jiantuan_number">
 | 
			
		||||
            <t-input v-model="formData.jiantuan_number" placeholder="建团人数"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="青年人数" name="youth_number">
 | 
			
		||||
            <t-input v-model="formData.youth_number" placeholder="青年人数"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="上级团组织" name="superior_nature">
 | 
			
		||||
            <t-input v-model="formData.superior_nature" placeholder="上级团组织"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="团委负责人信息" name="tuanweifuzerenxinxi">
 | 
			
		||||
            <t-input v-model="formData.tuanweifuzerenxinxi" placeholder="团委负责人信息"></t-input>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="批复文件">
 | 
			
		||||
            <t-upload
 | 
			
		||||
              :action="$store.state.user.apiUrl+'/api/common/upload'"
 | 
			
		||||
              v-model="formData.documents_file_show"
 | 
			
		||||
              theme="image"
 | 
			
		||||
              tips="请选择批复文件(图片)"
 | 
			
		||||
              accept="image/*"
 | 
			
		||||
              :format-response="(response) => formatResponse(response, 4)"
 | 
			
		||||
            ></t-upload>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
        </t-form>
 | 
			
		||||
        <div style="text-align: center;margin-top: 40px">
 | 
			
		||||
          <t-space :style="{ width: '300px',margin:'0 auto',textAlign:'center' }">
 | 
			
		||||
            <t-button @click="submit">提交</t-button>
 | 
			
		||||
          </t-space>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </t-card>
 | 
			
		||||
    <t-dialog header="图片上传" :visible="caiMode" width="40%" top="20px" :onClose="onCloseMy" @confirm="onSubmit">
 | 
			
		||||
      <div class="cropper-content">
 | 
			
		||||
        <div class="cropper">
 | 
			
		||||
          <vueCropper
 | 
			
		||||
            ref="cropper"
 | 
			
		||||
            :img="caiImg"
 | 
			
		||||
            :canMoveBox="false"
 | 
			
		||||
            :output-size="1"
 | 
			
		||||
            output-type="png"
 | 
			
		||||
            :info="true"
 | 
			
		||||
            :full="false"
 | 
			
		||||
            :auto-crop="true"
 | 
			
		||||
            autoCropWidth="200px"
 | 
			
		||||
            autoCropHeight="200px"
 | 
			
		||||
            mode="100%"
 | 
			
		||||
            @realTime="realTime"
 | 
			
		||||
            @imgLoad="imgLoad"
 | 
			
		||||
            :fixed="true"
 | 
			
		||||
            :fixedNumber="[1,1]"
 | 
			
		||||
          ></vueCropper>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="show-preview"
 | 
			
		||||
             :style="{'width': previews.w + 'px', 'height': previews.h + 'px',  'overflow': 'hidden', 'margin': '5px'}">
 | 
			
		||||
          <div :style="previews.div" class="preview">
 | 
			
		||||
            <img :src="previews.url" :style="previews.img">
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="footer-btn">
 | 
			
		||||
        <div class="scope-btn">
 | 
			
		||||
          <label class="btn" for="uploads">上传图片</label>
 | 
			
		||||
          <input type="file" id="uploads" style="position:absolute; clip:rect(0 0 0 0);"
 | 
			
		||||
                 accept="image/png, image/jpeg, image/gif, image/jpg" @change="uploadImg($event, 1)">
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </t-dialog>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import {UserIcon, LockOnIcon} from 'tdesign-icons-vue';
 | 
			
		||||
import {CheckCircleIcon} from 'tdesign-icons-vue';
 | 
			
		||||
import store from '@/store';
 | 
			
		||||
import {VueCropper} from 'vue-cropper';
 | 
			
		||||
import axios from 'axios';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  components: {
 | 
			
		||||
    VueCropper,
 | 
			
		||||
    CheckCircleIcon,
 | 
			
		||||
    UserIcon,
 | 
			
		||||
    LockOnIcon,
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      caiMode: false,
 | 
			
		||||
      previews: {},
 | 
			
		||||
      caiImg: '',
 | 
			
		||||
      association:{},
 | 
			
		||||
      formData: {
 | 
			
		||||
        phone: '',
 | 
			
		||||
        password: '',
 | 
			
		||||
        nikename: '',
 | 
			
		||||
        gender: '',
 | 
			
		||||
        birth_time: '',
 | 
			
		||||
        nation: '',
 | 
			
		||||
        political: '',
 | 
			
		||||
        jiguan: '',
 | 
			
		||||
        institution: '',
 | 
			
		||||
        education: '',
 | 
			
		||||
        academic_degree: '',
 | 
			
		||||
        card_number: '',
 | 
			
		||||
        // work_unit: '',
 | 
			
		||||
        unit_position: '',
 | 
			
		||||
        wx_number: '',
 | 
			
		||||
        mailbox: '',
 | 
			
		||||
        fixed_telephone: '',
 | 
			
		||||
        achievement_award: '',
 | 
			
		||||
        other_contacts: '',
 | 
			
		||||
        other_social_positions: '',
 | 
			
		||||
        position: '',
 | 
			
		||||
        cardf_image_show: [],
 | 
			
		||||
        cardz_image_show: [],
 | 
			
		||||
        photo_image_show: [],
 | 
			
		||||
        cardf_image: '',
 | 
			
		||||
        cardz_image: '',
 | 
			
		||||
        photo_image: '',
 | 
			
		||||
        business_license_image_show: [],
 | 
			
		||||
        business_license_image: '',
 | 
			
		||||
        unified_code: '',
 | 
			
		||||
        enterprise_nature: '',
 | 
			
		||||
        enterprise_website: '',
 | 
			
		||||
        if_list: '',
 | 
			
		||||
        employee: '',
 | 
			
		||||
        previous_revenue: '',
 | 
			
		||||
        previous_tax: '',
 | 
			
		||||
        position_id: '',
 | 
			
		||||
        previous_profit: '',
 | 
			
		||||
        previous_donation: '',
 | 
			
		||||
        enterprise_location: '',
 | 
			
		||||
        industry_id: '',
 | 
			
		||||
        qitaqiyerenzhiqingkuang: '',
 | 
			
		||||
        enterprise_Introduction: '',
 | 
			
		||||
        introdiction: '',
 | 
			
		||||
        enterprise_honor: '',
 | 
			
		||||
        if_organization: '',
 | 
			
		||||
        nature: '',
 | 
			
		||||
        jiantuan_time: '',
 | 
			
		||||
        jiantuan_number: '',
 | 
			
		||||
        youth_number: '',
 | 
			
		||||
        superior_nature: '',
 | 
			
		||||
        tuanweifuzerenxinxi: '',
 | 
			
		||||
        documents_file: '',
 | 
			
		||||
        documents_file_show: [],
 | 
			
		||||
        introduction: '',
 | 
			
		||||
        enterprise_name: '',
 | 
			
		||||
        company_image:'',
 | 
			
		||||
        company_image_show:[],
 | 
			
		||||
        region_id:'',
 | 
			
		||||
        if_xianshi:1,
 | 
			
		||||
      },
 | 
			
		||||
      id: 0,
 | 
			
		||||
      info: '',
 | 
			
		||||
      plan_list: [],
 | 
			
		||||
      region_list:[],
 | 
			
		||||
      industry_list: []
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  mounted() {
 | 
			
		||||
    if(typeof (store.state.user.association)=='object'){
 | 
			
		||||
      this.association=store.state.user.association;
 | 
			
		||||
    }else{
 | 
			
		||||
      this.association=JSON.parse(store.state.user.association);
 | 
			
		||||
    }
 | 
			
		||||
    console.log( this.association);
 | 
			
		||||
    this.getPlan();
 | 
			
		||||
    this.getIndustry();
 | 
			
		||||
    this.getRegion();
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    onSubmit() {
 | 
			
		||||
      this.$refs.cropper.getCropBlob(data => {
 | 
			
		||||
        // do something
 | 
			
		||||
        console.log(data)
 | 
			
		||||
        console.log(this.caiImg);
 | 
			
		||||
        let formData = new FormData();
 | 
			
		||||
        formData.append('file', data, 'image.jpg');
 | 
			
		||||
        formData.append('association_id', this.association.association_id);
 | 
			
		||||
        console.log(formData);
 | 
			
		||||
        axios.post(store.state.user.apiUrl + '/api/common/upload', formData, {
 | 
			
		||||
          headers: {
 | 
			
		||||
            'Content-Type': 'multipart/form-data'
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
          .then(response => {
 | 
			
		||||
            console.log(response);
 | 
			
		||||
            var data=response.data;
 | 
			
		||||
            if(data.code==1){
 | 
			
		||||
              this.formData.photo_image=data.data.url;
 | 
			
		||||
              this.$message.success('图片上传成功!');
 | 
			
		||||
              this.caiMode=false;
 | 
			
		||||
              this.caiImg='';
 | 
			
		||||
              this.$refs.cropper.stopCrop();
 | 
			
		||||
              this.$refs.cropper.clearCrop();
 | 
			
		||||
            }else{
 | 
			
		||||
              this.$message.error('图片上传失败!');
 | 
			
		||||
            }
 | 
			
		||||
          })
 | 
			
		||||
          .catch(error => {
 | 
			
		||||
            console.error('文件上传失败', error);
 | 
			
		||||
          });
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    onCloseMy() {
 | 
			
		||||
      this.caiMode = false;
 | 
			
		||||
    },
 | 
			
		||||
    openCai() {
 | 
			
		||||
      this.$refs.cropper.startCrop();
 | 
			
		||||
      this.caiMode = true;
 | 
			
		||||
    },
 | 
			
		||||
    realTime(data) {
 | 
			
		||||
      this.previews = data
 | 
			
		||||
    },
 | 
			
		||||
    uploadImg(e, num) {
 | 
			
		||||
      //上传图片
 | 
			
		||||
      // this.option.img
 | 
			
		||||
      var file = e.target.files[0]
 | 
			
		||||
      if (!/\.(gif|jpg|jpeg|png|bmp|GIF|JPG|PNG)$/.test(e.target.value)) {
 | 
			
		||||
        alert('图片类型必须是.gif,jpeg,jpg,png,bmp中的一种')
 | 
			
		||||
        return false
 | 
			
		||||
      }
 | 
			
		||||
      var reader = new FileReader()
 | 
			
		||||
      reader.onload = (e) => {
 | 
			
		||||
        let data
 | 
			
		||||
        if (typeof e.target.result === 'object') {
 | 
			
		||||
          // 把Array Buffer转化为blob 如果是base64不需要
 | 
			
		||||
          data = window.URL.createObjectURL(new Blob([e.target.result]))
 | 
			
		||||
        } else {
 | 
			
		||||
          data = e.target.result
 | 
			
		||||
        }
 | 
			
		||||
        if (num === 1) {
 | 
			
		||||
          this.caiImg = data
 | 
			
		||||
        } else if (num === 2) {
 | 
			
		||||
          this.example2.img = data
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      // 转化为base64
 | 
			
		||||
      // reader.readAsDataURL(file)
 | 
			
		||||
      // 转化为blob
 | 
			
		||||
      reader.readAsArrayBuffer(file)
 | 
			
		||||
    },
 | 
			
		||||
    imgLoad(msg) {
 | 
			
		||||
      console.log(msg)
 | 
			
		||||
    },
 | 
			
		||||
    formatResponse(res, type) {
 | 
			
		||||
      console.log(res);
 | 
			
		||||
      if (type == 0) {
 | 
			
		||||
        this.formData.photo_image = res.data.url;
 | 
			
		||||
      } else if (type == 1) {
 | 
			
		||||
        this.formData.cardz_image = res.data.url;
 | 
			
		||||
      } else if (type == 2) {
 | 
			
		||||
        this.formData.cardf_image = res.data.url;
 | 
			
		||||
      } else if (type == 3) {
 | 
			
		||||
        this.formData.business_license_image = res.data.url;
 | 
			
		||||
      } else if(type==4){
 | 
			
		||||
        this.formData.documents_file = res.data.url;
 | 
			
		||||
      }else{
 | 
			
		||||
        this.formData.company_image = res.data.url;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      return {url: res.data.fullurl};
 | 
			
		||||
    },
 | 
			
		||||
    getRegion() {
 | 
			
		||||
      this.$request
 | 
			
		||||
        .post("/region")
 | 
			
		||||
        .then((res) => {
 | 
			
		||||
          console.log(res);
 | 
			
		||||
          if (res.code == 1) {
 | 
			
		||||
            this.region_list = res.data;
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        .catch((e) => {
 | 
			
		||||
          console.log(e);
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
    getIndustry() {
 | 
			
		||||
      this.$request
 | 
			
		||||
        .post("/industry")
 | 
			
		||||
        .then((res) => {
 | 
			
		||||
          console.log(res);
 | 
			
		||||
          if (res.code == 1) {
 | 
			
		||||
            this.industry_list = res.data;
 | 
			
		||||
            this.industry_list.push({id: -1, industry_name: '其他行业'});
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        .catch((e) => {
 | 
			
		||||
          console.log(e);
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
    getPlan() {
 | 
			
		||||
      this.$request
 | 
			
		||||
        .post("/position")
 | 
			
		||||
        .then((res) => {
 | 
			
		||||
          console.log(res);
 | 
			
		||||
          if (res.code == 1) {
 | 
			
		||||
            this.plan_list = res.data;
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        .catch((e) => {
 | 
			
		||||
          console.log(e);
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
    submit() {
 | 
			
		||||
      // if (this.formData.business_license_image == '') {
 | 
			
		||||
      //   this.$message.error('请上传营业执照!');
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      if (this.formData.phone == '') {
 | 
			
		||||
        this.$message.error('请填写手机号!');
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      if (this.formData.nikename == '') {
 | 
			
		||||
        this.$message.error('请填写会员姓名!');
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      // if (this.formData.unified_code == '') {
 | 
			
		||||
      //   this.$message.error('请输入统一社会信用代码!');
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      if (this.formData.enterprise_name == '') {
 | 
			
		||||
        this.$message.error('请填写企业名称!');
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      if (this.formData.photo_image == '') {
 | 
			
		||||
        this.formData.photo_image = '/uploads/20240517/8b2da599cd1e90fcfbb56bdf0f4f4181.webp';
 | 
			
		||||
      }
 | 
			
		||||
      // if (this.formData.enterprise_nature == '') {
 | 
			
		||||
      //   this.$message.error('请输入企业性质!');
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      // if (this.formData.enterprise_website == '') {
 | 
			
		||||
      //   this.$message.error('请输入企业网址!');
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      // if (this.formData.if_list == null) {
 | 
			
		||||
      //   this.$message.error('请选择是否上市!');
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      // if (this.formData.employee == '') {
 | 
			
		||||
      //   this.$message.error('请输入员工人数!');
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      // if (this.formData.enterprise_location == '') {
 | 
			
		||||
      //   this.$message.error('请输入企业注册地!');
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      // if (this.formData.previous_revenue == '') {
 | 
			
		||||
      //   this.$message.error('请输入上年度营业额!');
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      // if (this.formData.previous_tax == '') {
 | 
			
		||||
      //   this.$message.error('请输入上年度纳税额!');
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      // if (this.formData.education == '') {
 | 
			
		||||
      //   this.$message.error('请输入学历!');
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      // if (this.formData.previous_profit == '') {
 | 
			
		||||
      //   this.$message.error('请输入上年度净利润!');
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      // if (this.formData.previous_donation == '') {
 | 
			
		||||
      //   this.$message.error('请输入上年度公益性捐赠支出!');
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      // if (this.formData.qitaqiyerenzhiqingkuang == '') {
 | 
			
		||||
      //   this.$message.error('请输入其他企业任职情况!');
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      // if (this.formData.enterprise_Introduction == '') {
 | 
			
		||||
      //   this.$message.error('请输入企业介绍!');
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      // if (this.formData.introdiction == '') {
 | 
			
		||||
      //   this.$message.error('请输入业务介绍!');
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      // if (this.formData.enterprise_honor == '') {
 | 
			
		||||
      //   this.$message.error('请输入企业所获荣誉以及专利!');
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      // if (this.formData.if_organization == null) {
 | 
			
		||||
      //   this.$message.error('是否建立团组织!');
 | 
			
		||||
      //   return;
 | 
			
		||||
      // }
 | 
			
		||||
      // if (this.formData.if_organization == 0) {
 | 
			
		||||
      //   if (this.formData.nature == '') {
 | 
			
		||||
      //     this.$message.error('请输主团组织性质!');
 | 
			
		||||
      //     return;
 | 
			
		||||
      //   }
 | 
			
		||||
      //   if (this.formData.jiantuan_time == '') {
 | 
			
		||||
      //     this.$message.error('请输入建团时间!');
 | 
			
		||||
      //     return;
 | 
			
		||||
      //   }
 | 
			
		||||
      //   if (this.formData.jiantuan_number == '') {
 | 
			
		||||
      //     this.$message.error('请输入建团人数!');
 | 
			
		||||
      //     return;
 | 
			
		||||
      //   }
 | 
			
		||||
      //   if (this.formData.youth_number == '') {
 | 
			
		||||
      //     this.$message.error('请输入青年人数!');
 | 
			
		||||
      //     return;
 | 
			
		||||
      //   }
 | 
			
		||||
      //   if (this.formData.superior_nature == '') {
 | 
			
		||||
      //     this.$message.error('请输入上级团组织!');
 | 
			
		||||
      //     return;
 | 
			
		||||
      //   }
 | 
			
		||||
      //   if (this.formData.tuanweifuzerenxinxi == '') {
 | 
			
		||||
      //     this.$message.error('请输入团委负责人信息!');
 | 
			
		||||
      //     return;
 | 
			
		||||
      //   }
 | 
			
		||||
      //   if (this.formData.documents_file == '') {
 | 
			
		||||
      //     this.$message.error('请上传批复文件!');
 | 
			
		||||
      //     return;
 | 
			
		||||
      //   }
 | 
			
		||||
      // }
 | 
			
		||||
      this.$request
 | 
			
		||||
        .post("/member/add", this.formData)
 | 
			
		||||
        .then((res) => {
 | 
			
		||||
          console.log(res);
 | 
			
		||||
          if (res.code == 1) {
 | 
			
		||||
            this.$message.success('添加成功!');
 | 
			
		||||
            setTimeout(()=>{
 | 
			
		||||
              this.$router.push('/user/user_index');
 | 
			
		||||
            },1000)
 | 
			
		||||
          } else {
 | 
			
		||||
            this.$message.error(res.msg);
 | 
			
		||||
          }
 | 
			
		||||
          this.getInfo();
 | 
			
		||||
        })
 | 
			
		||||
        .catch((e) => {
 | 
			
		||||
          console.log(e);
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped lang="less">
 | 
			
		||||
.cropper-content {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  display: -webkit-flex;
 | 
			
		||||
  justify-content: flex-end;
 | 
			
		||||
  -webkit-justify-content: flex-end;
 | 
			
		||||
 | 
			
		||||
  .cropper {
 | 
			
		||||
    width: 350px;
 | 
			
		||||
    height: 300px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .show-preview {
 | 
			
		||||
    flex: 1;
 | 
			
		||||
    -webkit-flex: 1;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    display: -webkit-flex;
 | 
			
		||||
    justify-content: center;
 | 
			
		||||
    -webkit-justify-content: center;
 | 
			
		||||
 | 
			
		||||
    .preview {
 | 
			
		||||
      overflow: hidden;
 | 
			
		||||
      border-radius: 50%;
 | 
			
		||||
      border: 1px solid #cccccc;
 | 
			
		||||
      background: #cccccc;
 | 
			
		||||
      margin-left: 40px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.footer-btn {
 | 
			
		||||
  margin-top: 30px;
 | 
			
		||||
  display: flex;
 | 
			
		||||
  display: -webkit-flex;
 | 
			
		||||
  justify-content: flex-end;
 | 
			
		||||
  -webkit-justify-content: flex-end;
 | 
			
		||||
 | 
			
		||||
  .scope-btn {
 | 
			
		||||
    width: 350px;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    display: -webkit-flex;
 | 
			
		||||
    justify-content: space-between;
 | 
			
		||||
    -webkit-justify-content: space-between;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .upload-btn {
 | 
			
		||||
    flex: 1;
 | 
			
		||||
    -webkit-flex: 1;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    display: -webkit-flex;
 | 
			
		||||
    justify-content: center;
 | 
			
		||||
    -webkit-justify-content: center;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .btn {
 | 
			
		||||
    outline: none;
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
    line-height: 1;
 | 
			
		||||
    white-space: nowrap;
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
    -webkit-appearance: none;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    -webkit-box-sizing: border-box;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    outline: 0;
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    -webkit-transition: .1s;
 | 
			
		||||
    transition: .1s;
 | 
			
		||||
    font-weight: 500;
 | 
			
		||||
    padding: 8px 15px;
 | 
			
		||||
    font-size: 12px;
 | 
			
		||||
    border-radius: 3px;
 | 
			
		||||
    color: #fff;
 | 
			
		||||
    background-color: #67c23a;
 | 
			
		||||
    border-color: #67c23a;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@ -42,8 +42,8 @@
 | 
			
		||||
 | 
			
		||||
          <t-form-item label="性别" name="gender">
 | 
			
		||||
            <t-select v-model="formData.gender" :style="{ width: '200px' }">
 | 
			
		||||
              <t-option key="0" label="女" value="0"></t-option>
 | 
			
		||||
              <t-option key="1" label="男" value="1"></t-option>
 | 
			
		||||
              <t-option :key="0" label="女" :value="0"></t-option>
 | 
			
		||||
              <t-option :key="1" label="男" :value="1"></t-option>
 | 
			
		||||
            </t-select>
 | 
			
		||||
          </t-form-item>
 | 
			
		||||
          <t-form-item label="民族" name="nation">
 | 
			
		||||
@ -593,6 +593,7 @@ getRegion() {
 | 
			
		||||
          this.formData.cardf_image = res.data.cardf_image;
 | 
			
		||||
          this.formData.cardz_image = res.data.cardz_image;
 | 
			
		||||
          this.formData.photo_image = res.data.photo_image;
 | 
			
		||||
          this.formData.company_image = res.data.company_image;
 | 
			
		||||
          if (res.data.business_license_image == '') {
 | 
			
		||||
            this.formData.business_license_image_show = [];
 | 
			
		||||
          } else {
 | 
			
		||||
 | 
			
		||||
@ -44,7 +44,7 @@
 | 
			
		||||
        ></t-pagination>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <t-dialog header="信息审核" :confirmBtn="null" :visible="ShenMode" :onClose="onCloseMy" :cancelBtn="null"
 | 
			
		||||
    <t-dialog header="信息审核" :confirmBtn="null" :closeOnOverlayClick="false"  :visible="ShenMode" :onClose="onCloseMy" :cancelBtn="null"
 | 
			
		||||
              width="1000px" top="50px">
 | 
			
		||||
      <div style="text-align: center;width: 900px;height: 700px;margin: 0 auto;position: relative;overflow-y: scroll;">
 | 
			
		||||
        <t-space direction="vertical">
 | 
			
		||||
 | 
			
		||||
@ -54,6 +54,9 @@
 | 
			
		||||
          <t-col :span="2" class="operation-container">
 | 
			
		||||
            <t-button theme="primary" type="submit" :style="{ marginLeft: '8px' }"> 查询</t-button>
 | 
			
		||||
          </t-col>
 | 
			
		||||
          <t-col :span="2" style="text-align: right">
 | 
			
		||||
            <t-button @click="()=>$router.push('/user/user_add')"> 新增会员</t-button>
 | 
			
		||||
          </t-col>
 | 
			
		||||
        </t-row>
 | 
			
		||||
      </t-form>
 | 
			
		||||
      <t-tabs v-model="tabIndex" @change="tabIndexChange">
 | 
			
		||||
@ -98,6 +101,7 @@
 | 
			
		||||
        <t-pagination
 | 
			
		||||
          :total="total"
 | 
			
		||||
          :page-size="size"
 | 
			
		||||
          :current="page"
 | 
			
		||||
          @current-change="onCurrentChange"
 | 
			
		||||
          :showPageSize="false"
 | 
			
		||||
        ></t-pagination>
 | 
			
		||||
@ -107,6 +111,7 @@
 | 
			
		||||
</template>
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import store from "@/store";
 | 
			
		||||
import {toInteger} from "lodash";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
@ -144,6 +149,11 @@ export default {
 | 
			
		||||
    }else{
 | 
			
		||||
      this.association=JSON.parse(this.$store.state.user.association);
 | 
			
		||||
    }
 | 
			
		||||
    const page = sessionStorage.getItem('userPage');
 | 
			
		||||
    if(page){
 | 
			
		||||
      this.page=toInteger(page);
 | 
			
		||||
    }
 | 
			
		||||
    console.log(page);
 | 
			
		||||
    this.getList();
 | 
			
		||||
    this.getPositionList();
 | 
			
		||||
    this.getRegion();
 | 
			
		||||
@ -178,6 +188,7 @@ export default {
 | 
			
		||||
      this.page=1;
 | 
			
		||||
      this.total=0;
 | 
			
		||||
      this.list=[];
 | 
			
		||||
      sessionStorage.setItem('userPage', 1);
 | 
			
		||||
      this.getList();
 | 
			
		||||
    },
 | 
			
		||||
    del(row){
 | 
			
		||||
@ -198,6 +209,7 @@ export default {
 | 
			
		||||
    },
 | 
			
		||||
    onCurrentChange(d){
 | 
			
		||||
      this.page=d;
 | 
			
		||||
      sessionStorage.setItem('userPage', d);
 | 
			
		||||
      this.getList();
 | 
			
		||||
    },
 | 
			
		||||
    openUrl(member_id){
 | 
			
		||||
@ -221,6 +233,7 @@ export default {
 | 
			
		||||
    onSubmit(){
 | 
			
		||||
      this.page=1;
 | 
			
		||||
      this.list=[];
 | 
			
		||||
      sessionStorage.setItem('userPage', 1);
 | 
			
		||||
      this.getList();
 | 
			
		||||
    },
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -190,7 +190,7 @@ export default {
 | 
			
		||||
    },
 | 
			
		||||
    tgSelect(type){
 | 
			
		||||
      this.$request
 | 
			
		||||
        .post("/member/update",{member_id:this.member_id,if_xianshi:type})
 | 
			
		||||
        .post("/member/update",{member_id:this.member_id,if_xianshi:type,if_member:type})
 | 
			
		||||
        .then( (res) => {
 | 
			
		||||
          console.log(res);
 | 
			
		||||
          if (res.code==1){
 | 
			
		||||
 | 
			
		||||
@ -23,7 +23,7 @@
 | 
			
		||||
        </template>
 | 
			
		||||
      </t-table>
 | 
			
		||||
    </div>
 | 
			
		||||
    <t-dialog header="新增行业" :visible="addMode" :onClose="onCloseMy" @confirm="onSubmit">
 | 
			
		||||
    <t-dialog header="新增行业" :visible="addMode" :closeOnOverlayClick="false"  :onClose="onCloseMy" @confirm="onSubmit">
 | 
			
		||||
      <t-form>
 | 
			
		||||
        <t-form-item label="行业名称" name="name">
 | 
			
		||||
          <t-input placeholder="请输入行业名称" v-model="industry_name"/>
 | 
			
		||||
 | 
			
		||||
@ -27,7 +27,7 @@
 | 
			
		||||
        </template>
 | 
			
		||||
      </t-table>
 | 
			
		||||
    </div>
 | 
			
		||||
    <t-dialog header="新增职位" :visible="addMode" :onClose="onCloseMy" @confirm="onSubmit">
 | 
			
		||||
    <t-dialog header="新增职位" :visible="addMode" :closeOnOverlayClick="false" :onClose="onCloseMy" @confirm="onSubmit">
 | 
			
		||||
      <t-form>
 | 
			
		||||
        <t-form-item label="职位名称" name="name">
 | 
			
		||||
          <t-input placeholder="请输入职位名称" v-model="position_name"/>
 | 
			
		||||
 | 
			
		||||
@ -23,7 +23,7 @@
 | 
			
		||||
        </template>
 | 
			
		||||
      </t-table>
 | 
			
		||||
    </div>
 | 
			
		||||
    <t-dialog header="新增区域" :visible="addMode" :onClose="onCloseMy" @confirm="onSubmit">
 | 
			
		||||
    <t-dialog header="新增区域" :closeOnOverlayClick="false"  :visible="addMode" :onClose="onCloseMy" @confirm="onSubmit">
 | 
			
		||||
      <t-form>
 | 
			
		||||
        <t-form-item label="区域名称" name="region_name">
 | 
			
		||||
          <t-input placeholder="请输入区域名称" v-model="region_name"/>
 | 
			
		||||
 | 
			
		||||
@ -17,6 +17,12 @@ export default [
 | 
			
		||||
        name: 'DashboardBase',
 | 
			
		||||
        component: () => import('@/pages/dashboard/base/index.vue'),
 | 
			
		||||
        meta: { title: '数据大屏' },
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        path: 'admin_pwd',
 | 
			
		||||
        name: 'adminPwd',
 | 
			
		||||
        component: () => import('@/pages/dashboard/admin_pwd.vue'),
 | 
			
		||||
        meta: {title: '密码修改', hidden: true},
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import { ViewModuleIcon, UsergroupIcon,ViewListIcon,ChartBubbleIcon,HomeIcon,HelpIcon} from 'tdesign-icons-vue';
 | 
			
		||||
import {ViewModuleIcon, UsergroupIcon, ViewListIcon, ChartBubbleIcon, HomeIcon, HelpIcon} from 'tdesign-icons-vue';
 | 
			
		||||
 | 
			
		||||
import Layout from '@/layouts/index.vue';
 | 
			
		||||
 | 
			
		||||
@ -8,49 +8,55 @@ export default [
 | 
			
		||||
    name: 'user',
 | 
			
		||||
    component: Layout,
 | 
			
		||||
    redirect: '/user/user_index',
 | 
			
		||||
    meta: { title: '会员管理', icon: UsergroupIcon },
 | 
			
		||||
    meta: {title: '会员管理', icon: UsergroupIcon},
 | 
			
		||||
    children: [
 | 
			
		||||
      {
 | 
			
		||||
        path: 'user_index',
 | 
			
		||||
        name: 'userIndex',
 | 
			
		||||
        component: () => import('@/pages/user/user_index.vue'),
 | 
			
		||||
        meta: { title: '会员列表' },
 | 
			
		||||
        meta: {title: '会员列表'},
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        path: 'plan',
 | 
			
		||||
        name: 'userPlan',
 | 
			
		||||
        component: () => import('@/pages/user/user_plan.vue'),
 | 
			
		||||
        meta: { title: '职位管理' },
 | 
			
		||||
        meta: {title: '职位管理'},
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        path: 'line',
 | 
			
		||||
        name: 'userLine',
 | 
			
		||||
        component: () => import('@/pages/user/user_line.vue'),
 | 
			
		||||
        meta: { title: '行业管理' },
 | 
			
		||||
        meta: {title: '行业管理'},
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        path: 'region',
 | 
			
		||||
        name: 'userRegion',
 | 
			
		||||
        component: () => import('@/pages/user/user_region.vue'),
 | 
			
		||||
        meta: { title: '区域管理' },
 | 
			
		||||
        meta: {title: '区域管理'},
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        path: 'user_info',
 | 
			
		||||
        name: 'userInfo',
 | 
			
		||||
        component: () => import('@/pages/user/user_info.vue'),
 | 
			
		||||
        meta: { title: '会员详情',hidden:true },
 | 
			
		||||
        meta: {title: '会员详情', hidden: true},
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        path: 'user_edit',
 | 
			
		||||
        name: 'userEdit',
 | 
			
		||||
        component: () => import('@/pages/user/user_edit.vue'),
 | 
			
		||||
        meta: { title: '会员编辑',hidden:true },
 | 
			
		||||
        meta: {title: '会员编辑', hidden: true},
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        path: 'user_add',
 | 
			
		||||
        name: 'userAdd',
 | 
			
		||||
        component: () => import('@/pages/user/user_add.vue'),
 | 
			
		||||
        meta: {title: '新增会员', hidden: true},
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        path: 'user_edit_shen',
 | 
			
		||||
        name: 'userEditShen',
 | 
			
		||||
        component: () => import('@/pages/user/user_edit_shen.vue'),
 | 
			
		||||
        meta: { title: '编辑信息审核' },
 | 
			
		||||
        meta: {title: '编辑信息审核'},
 | 
			
		||||
      },
 | 
			
		||||
    ],
 | 
			
		||||
  },
 | 
			
		||||
@ -59,19 +65,19 @@ export default [
 | 
			
		||||
    name: 'activity',
 | 
			
		||||
    component: Layout,
 | 
			
		||||
    redirect: '/activity/index',
 | 
			
		||||
    meta: { title: '活动管理', icon: ChartBubbleIcon },
 | 
			
		||||
    meta: {title: '活动管理', icon: ChartBubbleIcon},
 | 
			
		||||
    children: [
 | 
			
		||||
      {
 | 
			
		||||
        path: 'activity_index',
 | 
			
		||||
        name: 'activityIndex',
 | 
			
		||||
        component: () => import('@/pages/activity/activity_index.vue'),
 | 
			
		||||
        meta: { title: '活动列表' },
 | 
			
		||||
        meta: {title: '活动列表'},
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        path: 'activity_top',
 | 
			
		||||
        name: 'activityTop',
 | 
			
		||||
        component: () => import('@/pages/activity/activity_top.vue'),
 | 
			
		||||
        meta: { title: '活动首页置顶' },
 | 
			
		||||
        meta: {title: '活动首页置顶'},
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
  },
 | 
			
		||||
@ -80,59 +86,59 @@ export default [
 | 
			
		||||
    name: 'news',
 | 
			
		||||
    component: Layout,
 | 
			
		||||
    redirect: '/news/news_index',
 | 
			
		||||
    meta: { title: '新闻文章', icon: ViewListIcon },
 | 
			
		||||
    meta: {title: '新闻文章', icon: ViewListIcon},
 | 
			
		||||
    children: [
 | 
			
		||||
      {
 | 
			
		||||
        path: 'news_index',
 | 
			
		||||
        name: 'newsIndex',
 | 
			
		||||
        component: () => import('@/pages/news/news_index.vue'),
 | 
			
		||||
        meta: { title: '新闻内容管理' },
 | 
			
		||||
        meta: {title: '新闻内容管理'},
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        path: 'news_type',
 | 
			
		||||
        name: 'newsType',
 | 
			
		||||
        component: () => import('@/pages/news/news_type.vue'),
 | 
			
		||||
        meta: { title: '新闻类目管理' },
 | 
			
		||||
        meta: {title: '新闻类目管理'},
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
  },{
 | 
			
		||||
  }, {
 | 
			
		||||
    path: '/association',
 | 
			
		||||
    name: 'association',
 | 
			
		||||
    component: Layout,
 | 
			
		||||
    redirect: '/association/index',
 | 
			
		||||
    meta: { title: '协会管理', icon: HomeIcon },
 | 
			
		||||
    meta: {title: '协会管理', icon: HomeIcon},
 | 
			
		||||
    children: [
 | 
			
		||||
      {
 | 
			
		||||
        path: 'person ',
 | 
			
		||||
        name: 'associationPerson',
 | 
			
		||||
        component: () => import('@/pages/association/person.vue'),
 | 
			
		||||
        meta: { title: '管理员' },
 | 
			
		||||
        meta: {title: '管理员'},
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        path: 'carousel ',
 | 
			
		||||
        name: 'associationCarousel',
 | 
			
		||||
        component: () => import('@/pages/association/carousel.vue'),
 | 
			
		||||
        meta: { title: '轮播图' },
 | 
			
		||||
        meta: {title: '轮播图'},
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        path: 'opinion',
 | 
			
		||||
        name: 'associationOpinion',
 | 
			
		||||
        component: () => import('@/pages/association/opinion.vue'),
 | 
			
		||||
        meta: { title: '意见反馈' },
 | 
			
		||||
        meta: {title: '意见反馈'},
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        path: 'index',
 | 
			
		||||
        name: 'associationIndex',
 | 
			
		||||
        component: () => import('@/pages/association/index.vue'),
 | 
			
		||||
        meta: { title: '关于我们' },
 | 
			
		||||
        meta: {title: '关于我们'},
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        path: 'system',
 | 
			
		||||
        name: 'systemIndex',
 | 
			
		||||
        component: () => import('@/pages/association/system.vue'),
 | 
			
		||||
        meta: { title: '系统设置' },
 | 
			
		||||
        meta: {title: '系统设置'},
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
  },
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
@ -75,6 +75,17 @@ const actions = {
 | 
			
		||||
          roles: ['DashboardBase','newsIndex', 'login', 'activityIndex', 'userEditShen', 'userIndex', 'userInfo', 'userEdit'],
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      // if (key.group == 1) {
 | 
			
		||||
      //   return {
 | 
			
		||||
      //     name: 'td_main',
 | 
			
		||||
      //     roles: ['ALL_ROUTERS'],
 | 
			
		||||
      //   };
 | 
			
		||||
      // } else {
 | 
			
		||||
      //   return {
 | 
			
		||||
      //     name: 'td_dev',
 | 
			
		||||
      //     roles: ['DashboardBase','newsIndex', 'login', 'activityIndex', 'userEditShen', 'userIndex', 'userInfo', 'userEdit'],
 | 
			
		||||
      //   };
 | 
			
		||||
      // }
 | 
			
		||||
    };
 | 
			
		||||
    const res = await mockRemoteUserInfo(state.association);
 | 
			
		||||
    commit('setUserInfo', res);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user