| | |
| | | <!-- æé人 --> |
| | | <template v-if="apprList[activeIndex].type == '1'"> |
| | | <div class="config_data_item_reviewed_content"> |
| | | <div v-for="(mem,memIndex) in apprList[activeIndex].objIds" :key="mem.id" |
| | | <div v-for="(mem, memIndex) in apprList[activeIndex].objIds" :key="mem.id" |
| | | class="config_data_item_reviewed_content_item"> |
| | | <span>{{ mem.name }}</span> |
| | | <i @click="memDel(memIndex)" class="el-icon-close"></i> |
| | |
| | | "> |
| | | ä¼ä¸ç»ç»æ¶æ |
| | | </div> |
| | | <div style="width: 100%; height: 100%; overflow-y: scroll"> |
| | | <div style="width: 100%; max-height: 560px; overflow-y: scroll"> |
| | | <Tree :list="companyTree" :defaultProps="{ |
| | | name: 'name', |
| | | status: 'fsStatus', |
| | |
| | | }" @callback="callback" /> |
| | | </div> |
| | | </div> |
| | | <el-transfer filterable :titles="['æªé', 'å·²é']" openAll :props="{ label: 'name', key: 'keyTemp' }" |
| | | <el-transfer filterable :titles="['æªé', 'å·²é']" openAll :props="{ label: 'name', key: 'keyTemp' }" |
| | | filter-placeholder="æç´¢åå·¥" v-model="searchForm.objIds" :data="memberList" class="transfer"> |
| | | </el-transfer> |
| | | </div> |
| | |
| | | activeType: '6', |
| | | subLoading: false, |
| | | apprList: [ |
| | | { remark: '审æ¹äºº', active: false,approveType: 0, memberType: 1, type: '1', objIds: [] }, |
| | | { remark: '审æ¹äºº', active: false, approveType: 0, memberType: 1, type: '1', objIds: [] }, |
| | | { remark: 'æé人', active: false, type: '1', objIds: [] } |
| | | ], |
| | | activeIndex: 0, |
| | |
| | | this.getfindCompanyTreePage() |
| | | this.apprList = [ |
| | | { remark: '审æ¹äºº', active: false, type: '0', memberType: 1, objIds: [] }, |
| | | { remark: 'æé人', active: false,approveType: 0, type: '1', objIds: [] } |
| | | { remark: 'æé人', active: false, approveType: 0, type: '1', objIds: [] } |
| | | ] |
| | | this.param = {} |
| | | this.searchForm = {} |
| | |
| | | this.activeIndex = 0 |
| | | }, |
| | | handleAddAppr() { |
| | | this.apprList.splice(this.apprList.length - 1, 0, { remark: '审æ¹äºº',approveType: 0, active: false, memberType: 1, type: 0, objIds: [] }) |
| | | this.apprList.splice(this.apprList.length - 1, 0, { remark: '审æ¹äºº', approveType: 0, active: false, memberType: 1, type: 0, objIds: [] }) |
| | | // this.apprList.push({ remark: '审æ¹äºº', active: false, type: '0' }) |
| | | }, |
| | | // è·åç»ç»æ |
| | |
| | | erpOrgId: '', |
| | | hasFace: '', |
| | | hkStatus: '', |
| | | includeChild: false, |
| | | includeChild: true, |
| | | type: 2 |
| | | }, |
| | | page: 1, |
| | | capacity: 30 |
| | | capacity: 300 |
| | | }).then(res => { |
| | | this.memberList = res.records || [] |
| | | this.memberList.forEach(item => { |
| | |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | ::v-deep .el-transfer-panel{ |
| | | |
| | | ::v-deep .el-transfer-panel { |
| | | flex: 1; |
| | | height: 100%; |
| | | } |
| | | |
| | | ::v-deep .el-transfer-panel__body { |
| | | height: 500px; |
| | | } |
| | |
| | | <GlobalAlertWindow |
| | | title="ä¿®æ¹å¯ç " |
| | | :visible.sync="visible.changePwd" |
| | | :showClose="!userInfo.needChangePwd || userInfo.needChangePwd == '1'" |
| | | :showCancel="userInfo.needChangePwd && userInfo.needChangePwd == '0'" |
| | | @confirm="confirmChangePwd" |
| | | @close="visible.changePwd = false" |
| | | > |
| | |
| | | v-model="changePwdData.form.newPwd" |
| | | type="password" |
| | | placeholder="请è¾å
¥æ°å¯ç " |
| | | maxlength="30" |
| | | maxlength="20" |
| | | show-password |
| | | ></el-input> |
| | | </el-form-item> |
| | |
| | | v-model="changePwdData.form.confirmPwd" |
| | | type="password" |
| | | placeholder="è¯·åæ¬¡è¾å
¥æ°å¯ç " |
| | | maxlength="30" |
| | | maxlength="20" |
| | | show-password |
| | | ></el-input> |
| | | </el-form-item> |
| | |
| | | // } |
| | | }, |
| | | mounted() { |
| | | console.log('userInfo',this.userInfo); |
| | | // console.log('userInfo',this.userInfo); |
| | | if(!this.userInfo.needChangePwd || this.userInfo.needChangePwd == '0'){ |
| | | this.visible.changePwd = true |
| | | } |
| | | |
| | | }, |
| | | filters: { |
| | |
| | | :close-on-click-modal="false" |
| | | :wrapper-closable="false" |
| | | :append-to-body="true" |
| | | :show-close="!showClose" |
| | | @close="close" |
| | | > |
| | | <div slot="title" class="window__header"> |
| | |
| | | <div v-if="withFooter" class="window__footer"> |
| | | <slot name="footer"> |
| | | <el-button @click="confirm" :loading="confirmWorking" type="primary">ç¡®å®</el-button> |
| | | <el-button @click="close">åæ¶</el-button> |
| | | <el-button v-if="showCancel" @click="close">åæ¶</el-button> |
| | | </slot> |
| | | </div> |
| | | </el-dialog> |
| | |
| | | type: String, |
| | | default: '50%' |
| | | }, |
| | | showClose: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | showCancel: { |
| | | type: Boolean, |
| | | default: true |
| | | }, |
| | | // æ¯å¦å
å«åºé¨æä½ |
| | | withFooter: { |
| | | type: Boolean, |
| | |
| | | <img src="@/assets/images/peizhi_ar@2x.png" alt="" /> |
| | | </div> |
| | | <div v-for="(item, index) in apprList" :key="index"> |
| | | <div |
| | | class="item yellow" |
| | | :class="{ |
| | | active: activeIndex == index, |
| | | blue: item.type == '1', |
| | | }" |
| | | @click="flowClick(index)" |
| | | > |
| | | <div class="item yellow" :class="{ |
| | | active: activeIndex == index, |
| | | blue: item.type == '1', |
| | | }" @click="flowClick(index)"> |
| | | <div class="head">{{ item.remark }}</div> |
| | | <div class="content"> |
| | | <!-- å®¡æ¹ --> |
| | | <template v-if="item.type == 0"> |
| | | <template v-if="item.memberType == '0'"> |
| | | <div>被访人</div> |
| | | </template> |
| | | <div>被访人</div> |
| | | </template> |
| | | <template v-if="item.memberType == '2'"> |
| | | <div>é¨é¨ä¸»ç®¡</div> |
| | | </template> |
| | | <template v-if="item.memberType == '1'"> |
| | | <div v-if="item.objIds && item.objIds.length === 1"> |
| | | <span |
| | | >{{ item.objIds[0].name }} |
| | | {{ item.objIds[0].companyName }}</span |
| | | > |
| | | <span>{{ item.objIds[0].name }} |
| | | {{ item.objIds[0].companyName }}</span> |
| | | <span v-if="item.approveType == 0 && item.type == '0'"> |
| | | æç¾</span |
| | | > |
| | | æç¾</span> |
| | | <span v-if="item.approveType == 1 && item.type == '0'"> |
| | | ä¼ç¾</span |
| | | > |
| | | ä¼ç¾</span> |
| | | </div> |
| | | <div v-else-if="item.objIds && item.objIds.length > 1"> |
| | | <span>{{ item.objIds[0].name }} ç</span> |
| | | <span v-if="item.approveType == 0 && item.type == '0'"> |
| | | æç¾</span |
| | | > |
| | | æç¾</span> |
| | | <span v-if="item.approveType == 1 && item.type == '0'"> |
| | | ä¼ç¾</span |
| | | > |
| | | ä¼ç¾</span> |
| | | </div> |
| | | <div v-else>è¯·éæ©</div> |
| | | <i class="el-icon-arrow-right"></i> |
| | |
| | | <!-- æé --> |
| | | <template v-if="item.type == 1"> |
| | | <div v-if="item.objIds && item.objIds.length === 1"> |
| | | <span |
| | | >{{ item.objIds[0].name }} |
| | | {{ item.objIds[0].companyName }}</span |
| | | > |
| | | </div> |
| | | <div v-else-if="item.objIds && item.objIds.length > 1"> |
| | | <span>{{ item.objIds[0].name }} ç</span> |
| | | </div> |
| | | <div v-else>è¯·éæ©</div> |
| | | <i |
| | | v-if="item.memberType == '1'" |
| | | class="el-icon-arrow-right" |
| | | ></i> |
| | | <span>{{ item.objIds[0].name }} |
| | | {{ item.objIds[0].companyName }}</span> |
| | | </div> |
| | | <div v-else-if="item.objIds && item.objIds.length > 1"> |
| | | <span>{{ item.objIds[0].name }} ç</span> |
| | | </div> |
| | | <div v-else>è¯·éæ©</div> |
| | | <i v-if="item.memberType == '1'" class="el-icon-arrow-right"></i> |
| | | </template> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="line"></div> |
| | | <img src="@/assets/images/peizhi_ar@2x.png" alt="" /> |
| | | </template> |
| | | <i |
| | | v-if="apprList.length - 2 === index" |
| | | @click="handleAddAppr()" |
| | | class="el-icon-circle-plus add" |
| | | ></i> |
| | | <i v-if="apprList.length - 2 === index" @click="handleAddAppr()" class="el-icon-circle-plus add"></i> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="config_data_item_label">éæ©è¯¥èç¹ç审æ¹äºº</div> |
| | | <div class="df_ac mb10"> |
| | | <div>审æ¹èç¹åç§°</div> |
| | | <el-input |
| | | class="w200 ml10" |
| | | v-model="apprList[activeIndex].remark" |
| | | ></el-input> |
| | | <el-input class="w200 ml10" v-model="apprList[activeIndex].remark"></el-input> |
| | | </div> |
| | | <!-- æé人 --> |
| | | <template v-if="apprList[activeIndex].type == '1'"> |
| | | <div class="config_data_item_reviewed_content"> |
| | | <div |
| | | v-for="mem, memIndex in apprList[activeIndex].objIds" |
| | | :key="mem.id" |
| | | class="config_data_item_reviewed_content_item" |
| | | > |
| | | <div v-for="mem, memIndex in apprList[activeIndex].objIds" :key="mem.id" |
| | | class="config_data_item_reviewed_content_item"> |
| | | <span>{{ mem.name }}</span> |
| | | <i @click="memDel(memIndex)" class="el-icon-close"></i> |
| | | </div> |
| | | <span class="add" @click="selStaff">+æ·»å </span> |
| | | </div> |
| | | </template> |
| | | <el-radio-group |
| | | v-if="apprList[activeIndex].type == '0'" |
| | | v-model="apprList[activeIndex].memberType" |
| | | > |
| | | <el-radio-group v-if="apprList[activeIndex].type == '0'" v-model="apprList[activeIndex].memberType"> |
| | | <el-radio :label="0">被访人</el-radio> |
| | | <el-radio :label="1">æå®äººå</el-radio> |
| | | <el-radio :label="2">é¨é¨ä¸»ç®¡</el-radio> |
| | | </el-radio-group> |
| | | <div |
| | | class="config_data_item_reviewed" |
| | | v-if="apprList[activeIndex].memberType == 1" |
| | | > |
| | | <div class="config_data_item_reviewed" v-if="apprList[activeIndex].memberType == 1"> |
| | | <div class="config_data_item_reviewed_label"> |
| | | <span>æå®å®¡æ ¸äºº</span> |
| | | <span>ä¸è¶
è¿20人</span> |
| | | </div> |
| | | <div class="config_data_item_reviewed_content"> |
| | | <div |
| | | v-for="mem,memIndex in apprList[activeIndex].objIds" |
| | | :key="mem.id" |
| | | class="config_data_item_reviewed_content_item" |
| | | > |
| | | <div v-for="mem, memIndex in apprList[activeIndex].objIds" :key="mem.id" |
| | | class="config_data_item_reviewed_content_item"> |
| | | <span>{{ mem.name }}</span> |
| | | <i class="el-icon-close" @click="memDel(memIndex)"></i> |
| | | </div> |
| | | <span class="add" @click="selStaff">+æ·»å </span> |
| | | </div> |
| | | </div> |
| | | <div |
| | | class="config_data_item_reviewed" |
| | | v-if="apprList[activeIndex].memberType == 2" |
| | | > |
| | | <div class="config_data_item_reviewed" v-if="apprList[activeIndex].memberType == 2"> |
| | | <div class="config_data_item_reviewed_label"> |
| | | <span>é¨é¨ä¸»ç®¡</span> |
| | | </div> |
| | | <div class="config_data_item_reviewed_r"> |
| | | <span>被访人ç</span> |
| | | <el-select |
| | | v-model="apprList[activeIndex].objLevel" |
| | | placeholder="è¯·éæ©" |
| | | style="margin: 0 20px 0 10px" |
| | | > |
| | | <el-select v-model="apprList[activeIndex].objLevel" placeholder="è¯·éæ©" style="margin: 0 20px 0 10px"> |
| | | <el-option label="ç´æ¥ä¸»ç®¡" :value="0" /> |
| | | <el-option label="äºçº§ä¸»ç®¡" :value="1" /> |
| | | <el-option label="ä¸çº§ä¸»ç®¡" :value="2" /> |
| | | <el-option label="å级主管" :value="4" /> |
| | | </el-select> |
| | | <el-checkbox |
| | | v-model="apprList[activeIndex].noleaderOpt" |
| | | :true-label="1" |
| | | :false-label="0" |
| | | >æ¾ä¸å°ä¸»ç®¡æ¶ï¼ç±ä¸çº§ä¸»ç®¡ä»£å®¡æ ¸</el-checkbox |
| | | > |
| | | <el-checkbox v-model="apprList[activeIndex].noleaderOpt" :true-label="1" |
| | | :false-label="0">æ¾ä¸å°ä¸»ç®¡æ¶ï¼ç±ä¸çº§ä¸»ç®¡ä»£å®¡æ ¸</el-checkbox> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div |
| | | class="config_data_item" |
| | | v-if=" |
| | | (apprList[activeIndex].memberType == 1 || |
| | | apprList[activeIndex].memberType == 2) && |
| | | apprList[activeIndex].type == '0' |
| | | " |
| | | > |
| | | <div class="config_data_item" v-if=" |
| | | (apprList[activeIndex].memberType == 1 || |
| | | apprList[activeIndex].memberType == 2) && |
| | | apprList[activeIndex].type == '0' |
| | | "> |
| | | <div class="config_data_item_label"> |
| | | å®¡æ¹æ¹å¼ |
| | | <span>审æ¹äººä¸ºå¤ä¸ªæ¶ï¼éç¨çå®¡æ¹æ¹å¼</span> |
| | | </div> |
| | | <el-radio-group |
| | | v-model="apprList[activeIndex].approveType" |
| | | style="display: flex; flex-direction: column" |
| | | > |
| | | <el-radio :label="0" style="margin-bottom: 20px" |
| | | >æç¾ï¼å
¶ä¸ä¸å审æ¹äººåæææç»å³å¯ï¼</el-radio |
| | | > |
| | | <el-radio-group v-model="apprList[activeIndex].approveType" style="display: flex; flex-direction: column"> |
| | | <el-radio :label="0" style="margin-bottom: 20px">æç¾ï¼å
¶ä¸ä¸å审æ¹äººåæææç»å³å¯ï¼</el-radio> |
| | | <el-radio :label="1">ä¼ç¾ï¼ææå®¡æ¹äººé½åææå¯éè¿ï¼</el-radio> |
| | | </el-radio-group> |
| | | </div> |
| | | <div class="config_data_submit"> |
| | | <el-button |
| | | @click="onSubmit" |
| | | :loading="subLoading" |
| | | style="background: #435ebe" |
| | | type="primary" |
| | | >ä¿åé
置项</el-button |
| | | > |
| | | <el-button |
| | | v-if="activeIndex !== 0 && activeIndex !== apprList.length - 1" |
| | | type="danger" |
| | | plain |
| | | @click="handleDel" |
| | | >å é¤èç¹</el-button |
| | | > |
| | | <el-button @click="onSubmit" :loading="subLoading" style="background: #435ebe" |
| | | type="primary">ä¿åé
置项</el-button> |
| | | <el-button v-if="activeIndex !== 0 && activeIndex !== apprList.length - 1" type="danger" plain |
| | | @click="handleDel">å é¤èç¹</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <el-dialog title="éæ©åå·¥" :visible.sync="isShowTransfer" width="1000px"> |
| | | <div class="staff_modal"> |
| | | <div class="left"> |
| | | <div |
| | | style=" |
| | | <div style=" |
| | | width: 100%; |
| | | height: 50px; |
| | | background: rgba(242, 242, 242, 1); |
| | | line-height: 50px; |
| | | text-align: center; |
| | | font-size: 14px; |
| | | " |
| | | > |
| | | "> |
| | | ä¼ä¸ç»ç»æ¶æ |
| | | </div> |
| | | <div style="width: 100%; height: 100%; overflow-y: scroll"> |
| | | <Tree |
| | | :list="companyTree" |
| | | :defaultProps="{ |
| | | name: 'name', |
| | | status: 'fsStatus', |
| | | children: 'childList', |
| | | id: 'id', |
| | | }" |
| | | @callback="callback" |
| | | /> |
| | | <div style="width: 100%; max-height: 560px; overflow-y: scroll"> |
| | | <Tree :list="companyTree" :defaultProps="{ |
| | | name: 'name', |
| | | status: 'fsStatus', |
| | | children: 'childList', |
| | | id: 'id', |
| | | }" @callback="callback" /> |
| | | </div> |
| | | </div> |
| | | <el-transfer |
| | | filterable |
| | | :title="['æªé', 'å·²é']" |
| | | openAll |
| | | :props="{ label: 'name', key: 'keyTemp' }" |
| | | filter-placeholder="æç´¢åå·¥" |
| | | v-model="searchForm.objIds" |
| | | :data="memberList" |
| | | class="transfer" |
| | | > |
| | | <el-transfer filterable :title="['æªé', 'å·²é']" openAll :props="{ label: 'name', key: 'keyTemp' }" |
| | | filter-placeholder="æç´¢åå·¥" v-model="searchForm.objIds" :data="memberList" class="transfer"> |
| | | </el-transfer> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | |
| | | TableLayout, |
| | | Tree |
| | | }, |
| | | data () { |
| | | data() { |
| | | return { |
| | | activeType: '0', |
| | | subLoading: false, |
| | |
| | | companyTree: [] |
| | | } |
| | | }, |
| | | created () { |
| | | created() { |
| | | this.getfindCompanyTreePage() |
| | | this.initDate() |
| | | }, |
| | | methods: { |
| | | handleClick () { |
| | | handleClick() { |
| | | this.apprList = [] |
| | | const arr = [ |
| | | { remark: '审æ¹äºº', active: false, type: 0, objIds: [] }, |
| | |
| | | this.apprList = [...arr] |
| | | this.initDate() |
| | | }, |
| | | flowClick (i) { |
| | | flowClick(i) { |
| | | this.activeIndex = i |
| | | this.apprList.forEach((item, index) => { |
| | | if (i === index) { |
| | | item.active = true |
| | | console.log("====================",item.objIds) |
| | | console.log("====================", item.objIds) |
| | | if (item.objIds && item.objIds.length > 0) { |
| | | const objIds = item.objIds.map(i => { |
| | | return `${i.id}-${i.name}${i.companyName ? '-' + i.companyName : ''}` |
| | |
| | | } |
| | | }) |
| | | }, |
| | | initDate () { |
| | | initDate() { |
| | | const { activeType } = this |
| | | approveTemplByType(activeType).then(res => { |
| | | if (res && res.paramList) { |
| | |
| | | companyName: i.companyName |
| | | } |
| | | }) |
| | | }else{ |
| | | } else { |
| | | item.objIds = [] |
| | | } |
| | | }) |
| | |
| | | // console.log(res); |
| | | }) |
| | | }, |
| | | onSubmit () { |
| | | onSubmit() { |
| | | const { apprList, activeType } = this |
| | | const temp = JSON.parse(JSON.stringify(apprList)) |
| | | temp.forEach((item, index) => { |
| | |
| | | this.subLoading = false |
| | | }) |
| | | }, |
| | | handleDel () { |
| | | handleDel() { |
| | | const { activeIndex } = this |
| | | this.apprList.splice(activeIndex, 1) |
| | | this.activeIndex = 0 |
| | | }, |
| | | handleAddAppr () { |
| | | this.apprList.splice(this.apprList.length - 1, 0, { remark: '审æ¹äºº',approveType: 0, active: false, type: 0, objIds: [] }) |
| | | handleAddAppr() { |
| | | this.apprList.splice(this.apprList.length - 1, 0, { remark: '审æ¹äºº', approveType: 0, active: false, type: 0, objIds: [] }) |
| | | // this.apprList.push({ remark: '审æ¹äºº', active: false, type: '0' }) |
| | | }, |
| | | |
| | | // è·åç»ç»æ |
| | | getfindCompanyTreePage () { |
| | | getfindCompanyTreePage() { |
| | | fetchList() |
| | | .then(res => { |
| | | if (res && res.length > 0) { |
| | |
| | | } |
| | | }) |
| | | }, |
| | | getMemberList () { |
| | | getMemberList() { |
| | | memberListPost({ |
| | | model: { |
| | | companyId: this.searchForm.companyId || '', |
| | |
| | | erpOrgId: '', |
| | | hasFace: '', |
| | | hkStatus: '', |
| | | includeChild: false, |
| | | includeChild: true, |
| | | type: 2 |
| | | }, |
| | | page: 1, |
| | | capacity: 30 |
| | | capacity: 300 |
| | | }).then(res => { |
| | | this.memberList = res.records || [] |
| | | this.memberList.forEach(item => { |
| | |
| | | // console.log('defaultProps', res) |
| | | }) |
| | | }, |
| | | callback (row) { |
| | | callback(row) { |
| | | console.log(row) |
| | | this.$set(this.searchForm, 'companyId', row.id) |
| | | this.$set(this.searchForm, 'erpOrgId', row.erpId) |
| | | this.getMemberList() |
| | | }, |
| | | TransferSub () { |
| | | TransferSub() { |
| | | const { activeIndex } = this |
| | | if (this.searchForm.objIds && this.searchForm.objIds.length > 0) { |
| | | if (this.searchForm.objIds.length > 20) return this.$message.warning('æå¤éæ©20人') |
| | |
| | | this.isShowTransfer = false |
| | | console.log(this.searchForm.objIds) |
| | | }, |
| | | memDel (memIndex) { |
| | | memDel(memIndex) { |
| | | const { activeIndex } = this |
| | | this.apprList.forEach((item, index) => { |
| | | if (activeIndex === index) { |
| | |
| | | } |
| | | }) |
| | | }, |
| | | selStaff () { |
| | | selStaff() { |
| | | this.isShowTransfer = true |
| | | this.getMemberList() |
| | | }, |
| | | seleItem (i) { |
| | | seleItem(i) { |
| | | this.list.forEach((item, index) => { |
| | | item.active = index === i |
| | | }) |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | |
| | | .config_list { |
| | | width: 543px; |
| | | height: 100%; |
| | |
| | | box-sizing: border-box; |
| | | border: 1px solid #eeeeee; |
| | | background: #f7f7f7; |
| | | |
| | | .config_list_head { |
| | | width: 100%; |
| | | height: 40px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | |
| | | span { |
| | | font-size: 18px; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | } |
| | | } |
| | | |
| | | .config_content { |
| | | width: 100%; |
| | | height: calc(100% - 40px); |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | flex-direction: column; |
| | | |
| | | &::-webkit-scrollbar { |
| | | width: 0; |
| | | } |
| | | |
| | | .active { |
| | | border: 2px solid #4456ac !important; |
| | | } |
| | | |
| | | .yellow { |
| | | background: #e89e42 !important; |
| | | } |
| | | |
| | | .blue { |
| | | background: #5094f3 !important; |
| | | } |
| | | |
| | | .arrows { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | position: relative; |
| | | |
| | | .line { |
| | | width: 1px; |
| | | height: 60px; |
| | | background-color: #ccc; |
| | | } |
| | | |
| | | .add { |
| | | font-size: 40px; |
| | | color: #2080f7; |
| | |
| | | z-index: 999; |
| | | top: 10px; |
| | | } |
| | | |
| | | img { |
| | | width: 12px; |
| | | } |
| | | } |
| | | |
| | | .item { |
| | | width: 200px; |
| | | cursor: pointer; |
| | |
| | | position: relative; |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .head { |
| | | height: 32px; |
| | | line-height: 32px; |
| | | padding: 2px 12px; |
| | | color: #fff; |
| | | } |
| | | |
| | | .content { |
| | | flex: 1; |
| | | background-color: #fff; |
| | |
| | | padding: 0 12px; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | &:last-child { |
| | | margin: 0 !important; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .config_data { |
| | | flex: 1; |
| | | height: 100%; |
| | | margin-left: 20px; |
| | | |
| | | .config_data_submit { |
| | | margin-top: 50px; |
| | | } |
| | | |
| | | .config_data_item { |
| | | width: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | margin-bottom: 30px; |
| | | |
| | | &:last-child { |
| | | margin: 0 !important; |
| | | } |
| | | |
| | | .config_data_item_label { |
| | | font-size: 16px; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | margin-bottom: 20px; |
| | | |
| | | span { |
| | | font-size: 12px; |
| | | font-weight: 400; |
| | |
| | | margin-left: 10px; |
| | | } |
| | | } |
| | | |
| | | .config_data_item_reviewed { |
| | | width: 100%; |
| | | margin-top: 20px; |
| | | |
| | | .config_data_item_reviewed_r { |
| | | margin-top: 10px; |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | span { |
| | | flex-shrink: 0; |
| | | font-size: 14px; |
| | |
| | | color: #666666; |
| | | } |
| | | } |
| | | |
| | | .config_data_item_reviewed_label { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | span { |
| | | &:nth-child(1) { |
| | | font-size: 14px; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | |
| | | &:nth-child(2) { |
| | | font-size: 12px; |
| | | font-weight: 400; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .config_data_item_reviewed_content { |
| | | width: 400px; |
| | | margin-top: 10px; |
| | |
| | | display: flex; |
| | | align-items: flex-start; |
| | | flex-wrap: wrap; |
| | | |
| | | .add { |
| | | font-size: 12px; |
| | | font-weight: 400; |
| | |
| | | cursor: pointer; |
| | | margin-top: 3px; |
| | | } |
| | | |
| | | .config_data_item_reviewed_content_item { |
| | | padding: 3px 5px; |
| | | background: #f4f7fc; |
| | |
| | | box-sizing: border-box; |
| | | margin-right: 10px; |
| | | margin-bottom: 10px; |
| | | |
| | | span { |
| | | font-size: 12px; |
| | | font-weight: 400; |
| | | color: #333333; |
| | | } |
| | | |
| | | i { |
| | | color: #949ba2; |
| | | margin-left: 10px; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .staff_modal { |
| | | display: flex; |
| | | |
| | | .left { |
| | | width: 300px; |
| | | margin-right: 20px; |
| | | } |
| | | |
| | | .transfer { |
| | | height: 600px; |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | ::v-deep .el-transfer-panel{ |
| | | |
| | | ::v-deep .el-transfer-panel { |
| | | flex: 1; |
| | | height: 100%; |
| | | } |
| | | |
| | | ::v-deep .el-transfer-panel__body { |
| | | height: 500px; |
| | | } |
| | |
| | | <div class="config_content"> |
| | | <div class="item"> |
| | | <div class="head">å起人</div> |
| | | <div class="content">访客</div> |
| | | <div class="content">被访人</div> |
| | | </div> |
| | | <div class="arrows"> |
| | | <div class="line"></div> |
| | | <img src="@/assets/images/peizhi_ar@2x.png" alt="" /> |
| | | </div> |
| | | <div v-for="(item, index) in apprList" :key="index"> |
| | | <div |
| | | class="item yellow" |
| | | :class="{ |
| | | active: activeIndex == index, |
| | | blue: item.type == '1', |
| | | }" |
| | | @click="flowClick(index)" |
| | | > |
| | | <div class="item yellow" :class="{ |
| | | active: activeIndex == index, |
| | | blue: item.type == '1', |
| | | }" @click="flowClick(index)"> |
| | | <div class="head">{{ item.remark }}</div> |
| | | <div class="content"> |
| | | <!-- å®¡æ¹ --> |
| | | <template v-if="item.type == 0"> |
| | | <template v-if="item.memberType == '0'"> |
| | | <div>被访人</div> |
| | | </template> |
| | | <div>被访人</div> |
| | | </template> |
| | | <template v-if="item.memberType == '2'"> |
| | | <div>é¨é¨ä¸»ç®¡</div> |
| | | </template> |
| | | <template v-if="item.memberType == '1'"> |
| | | <div v-if="item.objIds && item.objIds.length === 1"> |
| | | <span |
| | | >{{ item.objIds[0].name }} |
| | | {{ item.objIds[0].companyName }}</span |
| | | > |
| | | <span>{{ item.objIds[0].name }} |
| | | {{ item.objIds[0].companyName }}</span> |
| | | <span v-if="item.approveType == 0 && item.type == '0'"> |
| | | æç¾</span |
| | | > |
| | | æç¾</span> |
| | | <span v-if="item.approveType == 1 && item.type == '0'"> |
| | | ä¼ç¾</span |
| | | > |
| | | ä¼ç¾</span> |
| | | </div> |
| | | <div v-else-if="item.objIds && item.objIds.length > 1"> |
| | | <span>{{ item.objIds[0].name }} ç</span> |
| | | <span v-if="item.approveType == 0 && item.type == '0'"> |
| | | æç¾</span |
| | | > |
| | | æç¾</span> |
| | | <span v-if="item.approveType == 1 && item.type == '0'"> |
| | | ä¼ç¾</span |
| | | > |
| | | ä¼ç¾</span> |
| | | </div> |
| | | <div v-else>è¯·éæ©</div> |
| | | <i class="el-icon-arrow-right"></i> |
| | |
| | | <!-- æé --> |
| | | <template v-if="item.type == 1"> |
| | | <div v-if="item.objIds && item.objIds.length === 1"> |
| | | <span |
| | | >{{ item.objIds[0].name }} |
| | | {{ item.objIds[0].companyName }}</span |
| | | > |
| | | </div> |
| | | <div v-else-if="item.objIds && item.objIds.length > 1"> |
| | | <span>{{ item.objIds[0].name }} ç</span> |
| | | </div> |
| | | <div v-else>è¯·éæ©</div> |
| | | <i |
| | | v-if="item.memberType == '1'" |
| | | class="el-icon-arrow-right" |
| | | ></i> |
| | | <span>{{ item.objIds[0].name }} |
| | | {{ item.objIds[0].companyName }}</span> |
| | | </div> |
| | | <div v-else-if="item.objIds && item.objIds.length > 1"> |
| | | <span>{{ item.objIds[0].name }} ç</span> |
| | | </div> |
| | | <div v-else>è¯·éæ©</div> |
| | | <i v-if="item.memberType == '1'" class="el-icon-arrow-right"></i> |
| | | </template> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="line"></div> |
| | | <img src="@/assets/images/peizhi_ar@2x.png" alt="" /> |
| | | </template> |
| | | <i |
| | | v-if="apprList.length - 2 === index" |
| | | @click="handleAddAppr()" |
| | | class="el-icon-circle-plus add" |
| | | ></i> |
| | | <i v-if="apprList.length - 2 === index" @click="handleAddAppr()" class="el-icon-circle-plus add"></i> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="config_data_item_label">éæ©è¯¥èç¹ç审æ¹äºº</div> |
| | | <div class="df_ac mb10"> |
| | | <div>审æ¹èç¹åç§°</div> |
| | | <el-input |
| | | class="w200 ml10" |
| | | v-model="apprList[activeIndex].remark" |
| | | ></el-input> |
| | | <el-input class="w200 ml10" v-model="apprList[activeIndex].remark"></el-input> |
| | | </div> |
| | | <!-- æé人 --> |
| | | <template v-if="apprList[activeIndex].type == '1'"> |
| | | <div class="config_data_item_reviewed_content"> |
| | | <div |
| | | v-for="mem,memIndex in apprList[activeIndex].objIds" |
| | | :key="mem.id" |
| | | class="config_data_item_reviewed_content_item" |
| | | > |
| | | <div v-for="mem, memIndex in apprList[activeIndex].objIds" :key="mem.id" |
| | | class="config_data_item_reviewed_content_item"> |
| | | <span>{{ mem.name }}</span> |
| | | <i @click="memDel(memIndex)" class="el-icon-close"></i> |
| | | </div> |
| | | <span class="add" @click="selStaff">+æ·»å </span> |
| | | </div> |
| | | </template> |
| | | <el-radio-group |
| | | v-if="apprList[activeIndex].type == '0'" |
| | | v-model="apprList[activeIndex].memberType" |
| | | > |
| | | <el-radio-group v-if="apprList[activeIndex].type == '0'" v-model="apprList[activeIndex].memberType"> |
| | | <el-radio :label="0">被访人</el-radio> |
| | | <el-radio :label="1">æå®äººå</el-radio> |
| | | <el-radio :label="2">é¨é¨ä¸»ç®¡</el-radio> |
| | | </el-radio-group> |
| | | <div |
| | | class="config_data_item_reviewed" |
| | | v-if="apprList[activeIndex].memberType == 1" |
| | | > |
| | | <div class="config_data_item_reviewed" v-if="apprList[activeIndex].memberType == 1"> |
| | | <div class="config_data_item_reviewed_label"> |
| | | <span>æå®å®¡æ ¸äºº</span> |
| | | <span>ä¸è¶
è¿20人</span> |
| | | </div> |
| | | <div class="config_data_item_reviewed_content"> |
| | | <div |
| | | v-for="(mem, memIndex) in apprList[activeIndex].objIds" |
| | | :key="mem.id" |
| | | class="config_data_item_reviewed_content_item" |
| | | > |
| | | <div v-for="(mem, memIndex) in apprList[activeIndex].objIds" :key="mem.id" |
| | | class="config_data_item_reviewed_content_item"> |
| | | <span>{{ mem.name }}</span> |
| | | <i class="el-icon-close" @click="memDel(memIndex)"></i> |
| | | </div> |
| | | <span class="add" @click="selStaff">+æ·»å </span> |
| | | </div> |
| | | </div> |
| | | <div |
| | | class="config_data_item_reviewed" |
| | | v-if="apprList[activeIndex].memberType == 2" |
| | | > |
| | | <div class="config_data_item_reviewed" v-if="apprList[activeIndex].memberType == 2"> |
| | | <div class="config_data_item_reviewed_label"> |
| | | <span>é¨é¨ä¸»ç®¡</span> |
| | | </div> |
| | | <div class="config_data_item_reviewed_r"> |
| | | <span>被访人ç</span> |
| | | <el-select |
| | | v-model="apprList[activeIndex].objLevel" |
| | | placeholder="è¯·éæ©" |
| | | style="margin: 0 20px 0 10px" |
| | | > |
| | | <el-select v-model="apprList[activeIndex].objLevel" placeholder="è¯·éæ©" style="margin: 0 20px 0 10px"> |
| | | <el-option label="ç´æ¥ä¸»ç®¡" :value="0" /> |
| | | <el-option label="äºçº§ä¸»ç®¡" :value="1" /> |
| | | <el-option label="ä¸çº§ä¸»ç®¡" :value="2" /> |
| | | <el-option label="å级主管" :value="4" /> |
| | | </el-select> |
| | | <el-checkbox |
| | | v-model="apprList[activeIndex].noleaderOpt" |
| | | :true-label="1" |
| | | :false-label="0" |
| | | >æ¾ä¸å°ä¸»ç®¡æ¶ï¼ç±ä¸çº§ä¸»ç®¡ä»£å®¡æ ¸</el-checkbox |
| | | > |
| | | <el-checkbox v-model="apprList[activeIndex].noleaderOpt" :true-label="1" |
| | | :false-label="0">æ¾ä¸å°ä¸»ç®¡æ¶ï¼ç±ä¸çº§ä¸»ç®¡ä»£å®¡æ ¸</el-checkbox> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div |
| | | class="config_data_item" |
| | | v-if=" |
| | | (apprList[activeIndex].memberType == 1 || |
| | | apprList[activeIndex].memberType == 2) && |
| | | apprList[activeIndex].type == '0' |
| | | " |
| | | > |
| | | <div class="config_data_item" v-if=" |
| | | (apprList[activeIndex].memberType == 1 || |
| | | apprList[activeIndex].memberType == 2) && |
| | | apprList[activeIndex].type == '0' |
| | | "> |
| | | <div class="config_data_item_label"> |
| | | å®¡æ¹æ¹å¼ |
| | | <span>审æ¹äººä¸ºå¤ä¸ªæ¶ï¼éç¨çå®¡æ¹æ¹å¼</span> |
| | | </div> |
| | | <el-radio-group |
| | | v-model="apprList[activeIndex].approveType" |
| | | style="display: flex; flex-direction: column" |
| | | > |
| | | <el-radio :label="0" style="margin-bottom: 20px" |
| | | >æç¾ï¼å
¶ä¸ä¸å审æ¹äººåæææç»å³å¯ï¼</el-radio |
| | | > |
| | | <el-radio-group v-model="apprList[activeIndex].approveType" style="display: flex; flex-direction: column"> |
| | | <el-radio :label="0" style="margin-bottom: 20px">æç¾ï¼å
¶ä¸ä¸å审æ¹äººåæææç»å³å¯ï¼</el-radio> |
| | | <el-radio :label="1">ä¼ç¾ï¼ææå®¡æ¹äººé½åææå¯éè¿ï¼</el-radio> |
| | | </el-radio-group> |
| | | </div> |
| | | <div class="config_data_submit"> |
| | | <el-button |
| | | @click="onSubmit" |
| | | :loading="subLoading" |
| | | style="background: #435ebe" |
| | | type="primary" |
| | | >ä¿åé
置项</el-button |
| | | > |
| | | <el-button |
| | | v-if="activeIndex !== 0 && activeIndex !== apprList.length - 1" |
| | | type="danger" |
| | | plain |
| | | @click="handleDel" |
| | | >å é¤èç¹</el-button |
| | | > |
| | | <el-button @click="onSubmit" :loading="subLoading" style="background: #435ebe" |
| | | type="primary">ä¿åé
置项</el-button> |
| | | <el-button v-if="activeIndex !== 0 && activeIndex !== apprList.length - 1" type="danger" plain |
| | | @click="handleDel">å é¤èç¹</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <el-dialog title="éæ©åå·¥" :visible.sync="isShowTransfer" width="1000px"> |
| | | <div class="staff_modal"> |
| | | <div class="left"> |
| | | <div |
| | | style=" |
| | | <div style=" |
| | | width: 100%; |
| | | height: 50px; |
| | | background: rgba(242, 242, 242, 1); |
| | | line-height: 50px; |
| | | text-align: center; |
| | | font-size: 14px; |
| | | " |
| | | > |
| | | "> |
| | | ä¼ä¸ç»ç»æ¶æ |
| | | </div> |
| | | <div style="width: 100%; height: 100%; overflow-y: scroll"> |
| | | <Tree |
| | | :list="companyTree" |
| | | :defaultProps="{ |
| | | name: 'name', |
| | | status: 'fsStatus', |
| | | children: 'childList', |
| | | id: 'id', |
| | | }" |
| | | @callback="callback" |
| | | /> |
| | | <div style="width: 100%; max-height: 560px; overflow-y: scroll"> |
| | | <Tree :list="companyTree" :defaultProps="{ |
| | | name: 'name', |
| | | status: 'fsStatus', |
| | | children: 'childList', |
| | | id: 'id', |
| | | }" @callback="callback" /> |
| | | </div> |
| | | </div> |
| | | <el-transfer |
| | | filterable |
| | | :title="['æªé', 'å·²é']" |
| | | openAll |
| | | :props="{ label: 'name', key: 'keyTemp' }" |
| | | filter-placeholder="æç´¢åå·¥" |
| | | v-model="searchForm.objIds" |
| | | :data="memberList" |
| | | class="transfer" |
| | | > |
| | | <el-transfer filterable :title="['æªé', 'å·²é']" openAll :props="{ label: 'name', key: 'keyTemp' }" |
| | | filter-placeholder="æç´¢åå·¥" v-model="searchForm.objIds" :data="memberList" class="transfer"> |
| | | </el-transfer> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | |
| | | TableLayout, |
| | | Tree |
| | | }, |
| | | data () { |
| | | data() { |
| | | return { |
| | | activeType: '2', |
| | | subLoading: false, |
| | |
| | | companyTree: [] |
| | | } |
| | | }, |
| | | created () { |
| | | created() { |
| | | this.getfindCompanyTreePage() |
| | | this.initDate() |
| | | }, |
| | | methods: { |
| | | flowClick (i) { |
| | | flowClick(i) { |
| | | this.activeIndex = i |
| | | this.apprList.forEach((item, index) => { |
| | | if (i === index) { |
| | |
| | | } |
| | | }) |
| | | }, |
| | | initDate () { |
| | | initDate() { |
| | | const { activeType } = this |
| | | approveTemplByType(activeType).then(res => { |
| | | if (res && res.paramList) { |
| | |
| | | companyName: i.companyName |
| | | } |
| | | }) |
| | | }else{ |
| | | } else { |
| | | item.objIds = [] |
| | | } |
| | | }) |
| | |
| | | // console.log(res); |
| | | }) |
| | | }, |
| | | onSubmit () { |
| | | onSubmit() { |
| | | const { apprList, activeType } = this |
| | | const temp = JSON.parse(JSON.stringify(apprList)) |
| | | temp.forEach((item, index) => { |
| | |
| | | this.subLoading = false |
| | | }) |
| | | }, |
| | | handleDel () { |
| | | handleDel() { |
| | | const { activeIndex } = this |
| | | this.apprList.splice(activeIndex, 1) |
| | | this.activeIndex = 0 |
| | | }, |
| | | handleAddAppr () { |
| | | this.apprList.splice(this.apprList.length - 2, 0, { remark: '审æ¹äºº',approveType: 0, active: false, type: 0, objIds: [] }) |
| | | handleAddAppr() { |
| | | this.apprList.splice(this.apprList.length - 2, 0, { remark: '审æ¹äºº', approveType: 0, active: false, type: 0, objIds: [] }) |
| | | // this.apprList.push({ remark: '审æ¹äºº', active: false, type: '0' }) |
| | | }, |
| | | |
| | | // è·åç»ç»æ |
| | | getfindCompanyTreePage () { |
| | | getfindCompanyTreePage() { |
| | | fetchList() |
| | | .then(res => { |
| | | if (res && res.length > 0) { |
| | |
| | | } |
| | | }) |
| | | }, |
| | | getMemberList () { |
| | | getMemberList() { |
| | | memberListPost({ |
| | | model: { |
| | | companyId: this.searchForm.companyId || '', |
| | |
| | | erpOrgId: '', |
| | | hasFace: '', |
| | | hkStatus: '', |
| | | includeChild: false, |
| | | includeChild: true, |
| | | type: 2 |
| | | }, |
| | | page: 1, |
| | | capacity: 30 |
| | | capacity: 300 |
| | | }).then(res => { |
| | | this.memberList = res.records || [] |
| | | this.memberList.forEach(item => { |
| | |
| | | // console.log('defaultProps', res) |
| | | }) |
| | | }, |
| | | callback (row) { |
| | | callback(row) { |
| | | console.log(row) |
| | | this.$set(this.searchForm, 'companyId', row.id) |
| | | this.$set(this.searchForm, 'erpOrgId', row.erpId) |
| | | this.getMemberList() |
| | | }, |
| | | TransferSub () { |
| | | TransferSub() { |
| | | const { activeIndex } = this |
| | | if (this.searchForm.objIds && this.searchForm.objIds.length > 0) { |
| | | if (this.searchForm.objIds.length > 20) return this.$message.warning('æå¤éæ©20人') |
| | |
| | | this.isShowTransfer = false |
| | | console.log(this.searchForm.objIds) |
| | | }, |
| | | memDel (memIndex) { |
| | | memDel(memIndex) { |
| | | const { activeIndex } = this |
| | | this.apprList.forEach((item, index) => { |
| | | if (activeIndex === index) { |
| | |
| | | } |
| | | }) |
| | | }, |
| | | selStaff () { |
| | | selStaff() { |
| | | this.isShowTransfer = true |
| | | this.getMemberList() |
| | | }, |
| | | seleItem (i) { |
| | | seleItem(i) { |
| | | this.list.forEach((item, index) => { |
| | | item.active = index === i |
| | | }) |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | |
| | | .config_list { |
| | | width: 543px; |
| | | height: 100%; |
| | |
| | | box-sizing: border-box; |
| | | border: 1px solid #eeeeee; |
| | | background: #f7f7f7; |
| | | |
| | | .config_list_head { |
| | | width: 100%; |
| | | height: 40px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | |
| | | span { |
| | | font-size: 18px; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | } |
| | | } |
| | | |
| | | .config_content { |
| | | width: 100%; |
| | | height: calc(100% - 40px); |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | flex-direction: column; |
| | | |
| | | &::-webkit-scrollbar { |
| | | width: 0; |
| | | } |
| | | |
| | | .active { |
| | | border: 2px solid #4456ac !important; |
| | | } |
| | | |
| | | .yellow { |
| | | background: #e89e42 !important; |
| | | } |
| | | |
| | | .blue { |
| | | background: #5094f3 !important; |
| | | } |
| | | |
| | | .arrows { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | position: relative; |
| | | |
| | | .line { |
| | | width: 1px; |
| | | height: 60px; |
| | | background-color: #ccc; |
| | | } |
| | | |
| | | .add { |
| | | font-size: 40px; |
| | | color: #2080f7; |
| | |
| | | z-index: 999; |
| | | top: 10px; |
| | | } |
| | | |
| | | img { |
| | | width: 12px; |
| | | } |
| | | } |
| | | |
| | | .item { |
| | | width: 200px; |
| | | cursor: pointer; |
| | |
| | | position: relative; |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .head { |
| | | height: 32px; |
| | | line-height: 32px; |
| | | padding: 2px 12px; |
| | | color: #fff; |
| | | } |
| | | |
| | | .content { |
| | | flex: 1; |
| | | background-color: #fff; |
| | |
| | | padding: 0 12px; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | &:last-child { |
| | | margin: 0 !important; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .config_data { |
| | | flex: 1; |
| | | height: 100%; |
| | | margin-left: 20px; |
| | | |
| | | .config_data_submit { |
| | | margin-top: 50px; |
| | | } |
| | | |
| | | .config_data_item { |
| | | width: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | margin-bottom: 30px; |
| | | |
| | | &:last-child { |
| | | margin: 0 !important; |
| | | } |
| | | |
| | | .config_data_item_label { |
| | | font-size: 16px; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | margin-bottom: 20px; |
| | | |
| | | span { |
| | | font-size: 12px; |
| | | font-weight: 400; |
| | |
| | | margin-left: 10px; |
| | | } |
| | | } |
| | | |
| | | .config_data_item_reviewed { |
| | | width: 100%; |
| | | margin-top: 20px; |
| | | |
| | | .config_data_item_reviewed_r { |
| | | margin-top: 10px; |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | span { |
| | | flex-shrink: 0; |
| | | font-size: 14px; |
| | |
| | | color: #666666; |
| | | } |
| | | } |
| | | |
| | | .config_data_item_reviewed_label { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | span { |
| | | &:nth-child(1) { |
| | | font-size: 14px; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | |
| | | &:nth-child(2) { |
| | | font-size: 12px; |
| | | font-weight: 400; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .config_data_item_reviewed_content { |
| | | width: 400px; |
| | | margin-top: 10px; |
| | |
| | | display: flex; |
| | | align-items: flex-start; |
| | | flex-wrap: wrap; |
| | | |
| | | .add { |
| | | font-size: 12px; |
| | | font-weight: 400; |
| | |
| | | cursor: pointer; |
| | | margin-top: 3px; |
| | | } |
| | | |
| | | .config_data_item_reviewed_content_item { |
| | | padding: 3px 5px; |
| | | background: #f4f7fc; |
| | |
| | | box-sizing: border-box; |
| | | margin-right: 10px; |
| | | margin-bottom: 10px; |
| | | |
| | | span { |
| | | font-size: 12px; |
| | | font-weight: 400; |
| | | color: #333333; |
| | | } |
| | | |
| | | i { |
| | | color: #949ba2; |
| | | margin-left: 10px; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .staff_modal { |
| | | display: flex; |
| | | |
| | | .left { |
| | | width: 300px; |
| | | margin-right: 20px; |
| | | } |
| | | |
| | | .transfer { |
| | | height: 600px; |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | ::v-deep .el-transfer-panel{ |
| | | |
| | | ::v-deep .el-transfer-panel { |
| | | flex: 1; |
| | | height: 100%; |
| | | } |
| | | |
| | | ::v-deep .el-transfer-panel__body { |
| | | height: 500px; |
| | | } |
| | |
| | | isRemPsd: false, |
| | | username: '', |
| | | password: '', |
| | | activeTab: '1', |
| | | activeTab: '0', |
| | | // éªè¯ç |
| | | captcha: { |
| | | loading: false, |
| | |
| | | <img src="@/assets/images/peizhi_ar@2x.png" alt="" /> |
| | | </div> |
| | | <div v-for="(item, index) in apprList" :key="index"> |
| | | <div |
| | | class="item yellow" |
| | | :class="{ |
| | | active: activeIndex == index, |
| | | blue: item.type == '1', |
| | | }" |
| | | @click="flowClick(index)" |
| | | > |
| | | <div class="item yellow" :class="{ |
| | | active: activeIndex == index, |
| | | blue: item.type == '1', |
| | | }" @click="flowClick(index)"> |
| | | <div class="head">{{ item.remark }}</div> |
| | | <div class="content"> |
| | | <!-- å®¡æ¹ --> |
| | |
| | | </template> |
| | | <template v-if="item.memberType == '1'"> |
| | | <div v-if="item.objIds && item.objIds.length === 1"> |
| | | <span |
| | | >{{ item.objIds[0].name }} |
| | | {{ item.objIds[0].companyName }}</span |
| | | > |
| | | <span>{{ item.objIds[0].name }} |
| | | {{ item.objIds[0].companyName }}</span> |
| | | <span v-if="item.approveType == 0 && item.type == '0'"> |
| | | æç¾</span |
| | | > |
| | | æç¾</span> |
| | | <span v-if="item.approveType == 1 && item.type == '0'"> |
| | | ä¼ç¾</span |
| | | > |
| | | ä¼ç¾</span> |
| | | </div> |
| | | <div v-else-if="item.objIds && item.objIds.length > 1"> |
| | | <span>{{ item.objIds[0].name }} ç</span> |
| | | <span v-if="item.approveType == 0 && item.type == '0'"> |
| | | æç¾</span |
| | | > |
| | | æç¾</span> |
| | | <span v-if="item.approveType == 1 && item.type == '0'"> |
| | | ä¼ç¾</span |
| | | > |
| | | ä¼ç¾</span> |
| | | </div> |
| | | <div v-else>è¯·éæ©</div> |
| | | <i class="el-icon-arrow-right"></i> |
| | |
| | | <!-- æé --> |
| | | <template v-if="item.type == 1"> |
| | | <div v-if="item.objIds && item.objIds.length === 1"> |
| | | <span |
| | | >{{ item.objIds[0].name }} |
| | | {{ item.objIds[0].companyName }}</span |
| | | > |
| | | </div> |
| | | <div v-else-if="item.objIds && item.objIds.length > 1"> |
| | | <span>{{ item.objIds[0].name }} ç</span> |
| | | </div> |
| | | <div v-else>è¯·éæ©</div> |
| | | <i |
| | | v-if="item.memberType == '1'" |
| | | class="el-icon-arrow-right" |
| | | ></i> |
| | | <span>{{ item.objIds[0].name }} |
| | | {{ item.objIds[0].companyName }}</span> |
| | | </div> |
| | | <div v-else-if="item.objIds && item.objIds.length > 1"> |
| | | <span>{{ item.objIds[0].name }} ç</span> |
| | | </div> |
| | | <div v-else>è¯·éæ©</div> |
| | | <i v-if="item.memberType == '1'" class="el-icon-arrow-right"></i> |
| | | </template> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="line"></div> |
| | | <img src="@/assets/images/peizhi_ar@2x.png" alt="" /> |
| | | </template> |
| | | <i |
| | | v-if="apprList.length - 2 === index" |
| | | @click="handleAddAppr()" |
| | | class="el-icon-circle-plus add" |
| | | ></i> |
| | | <i v-if="apprList.length - 2 === index" @click="handleAddAppr()" class="el-icon-circle-plus add"></i> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="config_data_item_label">éæ©è¯¥èç¹ç审æ¹äºº</div> |
| | | <div class="df_ac mb10"> |
| | | <div>审æ¹èç¹åç§°</div> |
| | | <el-input |
| | | class="w200 ml10" |
| | | v-model="apprList[activeIndex].remark" |
| | | ></el-input> |
| | | <el-input class="w200 ml10" v-model="apprList[activeIndex].remark"></el-input> |
| | | </div> |
| | | <!-- æé人 --> |
| | | <template v-if="apprList[activeIndex].type == '1'"> |
| | | <div class="config_data_item_reviewed_content"> |
| | | <div |
| | | v-for="mem, memIndex in apprList[activeIndex].objIds" |
| | | :key="mem.id" |
| | | class="config_data_item_reviewed_content_item" |
| | | > |
| | | <div v-for="mem, memIndex in apprList[activeIndex].objIds" :key="mem.id" |
| | | class="config_data_item_reviewed_content_item"> |
| | | <span>{{ mem.name }}</span> |
| | | <i @click="memDel(memIndex)" class="el-icon-close"></i> |
| | | </div> |
| | | <span class="add" @click="selStaff">+æ·»å </span> |
| | | </div> |
| | | </template> |
| | | <el-radio-group |
| | | v-if="apprList[activeIndex].type == '0'" |
| | | v-model="apprList[activeIndex].memberType" |
| | | > |
| | | <el-radio-group v-if="apprList[activeIndex].type == '0'" v-model="apprList[activeIndex].memberType"> |
| | | <!-- <el-radio :label="0">被访人</el-radio> --> |
| | | <el-radio :label="1">æå®äººå</el-radio> |
| | | <el-radio :label="2">é¨é¨ä¸»ç®¡</el-radio> |
| | | </el-radio-group> |
| | | <div |
| | | class="config_data_item_reviewed" |
| | | v-if="apprList[activeIndex].memberType == 1" |
| | | > |
| | | <div class="config_data_item_reviewed" v-if="apprList[activeIndex].memberType == 1"> |
| | | <div class="config_data_item_reviewed_label"> |
| | | <span>æå®å®¡æ ¸äºº</span> |
| | | <span>ä¸è¶
è¿20人</span> |
| | | </div> |
| | | <div class="config_data_item_reviewed_content"> |
| | | <div |
| | | v-for="(mem, memIndex) in apprList[activeIndex].objIds" |
| | | :key="mem.id" |
| | | class="config_data_item_reviewed_content_item" |
| | | > |
| | | <div v-for="(mem, memIndex) in apprList[activeIndex].objIds" :key="mem.id" |
| | | class="config_data_item_reviewed_content_item"> |
| | | <span>{{ mem.name }}</span> |
| | | <i class="el-icon-close" @click="memDel(memIndex)"></i> |
| | | </div> |
| | | <span class="add" @click="selStaff">+æ·»å </span> |
| | | </div> |
| | | </div> |
| | | <div |
| | | class="config_data_item_reviewed" |
| | | v-if="apprList[activeIndex].memberType == 2" |
| | | > |
| | | <div class="config_data_item_reviewed" v-if="apprList[activeIndex].memberType == 2"> |
| | | <div class="config_data_item_reviewed_label"> |
| | | <span>é¨é¨ä¸»ç®¡</span> |
| | | </div> |
| | | <div class="config_data_item_reviewed_r"> |
| | | <span>ç³è¯·äººç</span> |
| | | <el-select |
| | | v-model="apprList[activeIndex].objLevel" |
| | | placeholder="è¯·éæ©" |
| | | style="margin: 0 20px 0 10px" |
| | | > |
| | | <el-select v-model="apprList[activeIndex].objLevel" placeholder="è¯·éæ©" style="margin: 0 20px 0 10px"> |
| | | <el-option label="ç´æ¥ä¸»ç®¡" :value="0" /> |
| | | <el-option label="äºçº§ä¸»ç®¡" :value="1" /> |
| | | <el-option label="ä¸çº§ä¸»ç®¡" :value="2" /> |
| | | <el-option label="å级主管" :value="4" /> |
| | | </el-select> |
| | | <el-checkbox |
| | | v-model="apprList[activeIndex].noleaderOpt" |
| | | :true-label="1" |
| | | :false-label="0" |
| | | >æ¾ä¸å°ä¸»ç®¡æ¶ï¼ç±ä¸çº§ä¸»ç®¡ä»£å®¡æ ¸</el-checkbox |
| | | > |
| | | <el-checkbox v-model="apprList[activeIndex].noleaderOpt" :true-label="1" |
| | | :false-label="0">æ¾ä¸å°ä¸»ç®¡æ¶ï¼ç±ä¸çº§ä¸»ç®¡ä»£å®¡æ ¸</el-checkbox> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div |
| | | class="config_data_item" |
| | | v-if=" |
| | | (apprList[activeIndex].memberType == 1 || |
| | | apprList[activeIndex].memberType == 2) && |
| | | apprList[activeIndex].type == '0' |
| | | " |
| | | > |
| | | <div class="config_data_item" v-if=" |
| | | (apprList[activeIndex].memberType == 1 || |
| | | apprList[activeIndex].memberType == 2) && |
| | | apprList[activeIndex].type == '0' |
| | | "> |
| | | <div class="config_data_item_label"> |
| | | å®¡æ¹æ¹å¼ |
| | | <span>审æ¹äººä¸ºå¤ä¸ªæ¶ï¼éç¨çå®¡æ¹æ¹å¼</span> |
| | | </div> |
| | | <el-radio-group |
| | | v-model="apprList[activeIndex].approveType" |
| | | style="display: flex; flex-direction: column" |
| | | > |
| | | <el-radio :label="0" style="margin-bottom: 20px" |
| | | >æç¾ï¼å
¶ä¸ä¸å审æ¹äººåæææç»å³å¯ï¼</el-radio |
| | | > |
| | | <el-radio-group v-model="apprList[activeIndex].approveType" style="display: flex; flex-direction: column"> |
| | | <el-radio :label="0" style="margin-bottom: 20px">æç¾ï¼å
¶ä¸ä¸å审æ¹äººåæææç»å³å¯ï¼</el-radio> |
| | | <el-radio :label="1">ä¼ç¾ï¼ææå®¡æ¹äººé½åææå¯éè¿ï¼</el-radio> |
| | | </el-radio-group> |
| | | </div> |
| | | <div v-if="apprList[activeIndex].type == '0'" class="df_ac mb10"> |
| | | <div>å
许修æ¹"驾驶å"</div> |
| | | <el-switch |
| | | class="ml10" |
| | | :active-value="1" |
| | | :inactive-value="0" |
| | | v-model="apprList[activeIndex].driverParam" |
| | | ></el-switch> |
| | | <el-switch class="ml10" :active-value="1" :inactive-value="0" |
| | | v-model="apprList[activeIndex].driverParam"></el-switch> |
| | | </div> |
| | | <div class="config_data_submit"> |
| | | <el-button |
| | | @click="onSubmit" |
| | | :loading="subLoading" |
| | | style="background: #435ebe" |
| | | type="primary" |
| | | >ä¿åé
置项</el-button |
| | | > |
| | | <el-button |
| | | v-if="activeIndex !== 0 && activeIndex !== apprList.length - 1" |
| | | type="danger" |
| | | plain |
| | | @click="handleDel" |
| | | >å é¤èç¹</el-button |
| | | > |
| | | <el-button @click="onSubmit" :loading="subLoading" style="background: #435ebe" |
| | | type="primary">ä¿åé
置项</el-button> |
| | | <el-button v-if="activeIndex !== 0 && activeIndex !== apprList.length - 1" type="danger" plain |
| | | @click="handleDel">å é¤èç¹</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <el-dialog title="éæ©åå·¥" :visible.sync="isShowTransfer" width="1000px"> |
| | | <div class="staff_modal"> |
| | | <div class="left"> |
| | | <div |
| | | style=" |
| | | <div style=" |
| | | width: 100%; |
| | | height: 50px; |
| | | background: rgba(242, 242, 242, 1); |
| | | line-height: 50px; |
| | | text-align: center; |
| | | font-size: 14px; |
| | | " |
| | | > |
| | | "> |
| | | ä¼ä¸ç»ç»æ¶æ |
| | | </div> |
| | | <div style="width: 100%; height: 100%; overflow-y: scroll"> |
| | | <Tree |
| | | :list="companyTree" |
| | | :defaultProps="{ |
| | | name: 'name', |
| | | status: 'fsStatus', |
| | | children: 'childList', |
| | | id: 'id', |
| | | }" |
| | | @callback="callback" |
| | | /> |
| | | <div style="width: 100%; max-height: 560px; overflow-y: scroll"> |
| | | <Tree :list="companyTree" :defaultProps="{ |
| | | name: 'name', |
| | | status: 'fsStatus', |
| | | children: 'childList', |
| | | id: 'id', |
| | | }" @callback="callback" /> |
| | | </div> |
| | | </div> |
| | | <el-transfer |
| | | filterable |
| | | :title="['æªé', 'å·²é']" |
| | | openAll |
| | | :props="{ label: 'name', key: 'keyTemp' }" |
| | | filter-placeholder="æç´¢åå·¥" |
| | | v-model="searchForm.objIds" |
| | | :data="memberList" |
| | | class="transfer" |
| | | > |
| | | <el-transfer filterable :title="['æªé', 'å·²é']" openAll :props="{ label: 'name', key: 'keyTemp' }" |
| | | filter-placeholder="æç´¢åå·¥" v-model="searchForm.objIds" :data="memberList" class="transfer"> |
| | | </el-transfer> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | |
| | | TableLayout, |
| | | Tree |
| | | }, |
| | | data () { |
| | | data() { |
| | | return { |
| | | activeType: '3', |
| | | subLoading: false, |
| | |
| | | companyTree: [] |
| | | } |
| | | }, |
| | | created () { |
| | | created() { |
| | | this.getfindCompanyTreePage() |
| | | this.initDate() |
| | | }, |
| | | methods: { |
| | | handleClick () { |
| | | handleClick() { |
| | | this.apprList = [] |
| | | const arr = [ |
| | | { remark: '审æ¹äºº', active: false, type: 0, objIds: [] }, |
| | |
| | | this.apprList = [...arr] |
| | | this.initDate() |
| | | }, |
| | | flowClick (i) { |
| | | flowClick(i) { |
| | | this.activeIndex = i |
| | | this.apprList.forEach((item, index) => { |
| | | if (i === index) { |
| | |
| | | } |
| | | }) |
| | | }, |
| | | initDate () { |
| | | initDate() { |
| | | const { activeType } = this |
| | | approveTemplByType(activeType).then(res => { |
| | | if (res && res.paramList) { |
| | |
| | | companyName: i.companyName |
| | | } |
| | | }) |
| | | }else{ |
| | | } else { |
| | | item.objIds = [] |
| | | } |
| | | }) |
| | |
| | | // console.log(res); |
| | | }) |
| | | }, |
| | | onSubmit () { |
| | | onSubmit() { |
| | | const { apprList, activeType } = this |
| | | const temp = JSON.parse(JSON.stringify(apprList)) |
| | | temp.forEach((item, index) => { |
| | |
| | | this.subLoading = false |
| | | }) |
| | | }, |
| | | handleDel () { |
| | | handleDel() { |
| | | const { activeIndex } = this |
| | | this.apprList.splice(activeIndex, 1) |
| | | this.activeIndex = 0 |
| | | }, |
| | | handleAddAppr () { |
| | | this.apprList.splice(this.apprList.length - 1, 0, { remark: '审æ¹äºº',approveType: 0, active: false, type: 0, objIds: [] }) |
| | | handleAddAppr() { |
| | | this.apprList.splice(this.apprList.length - 1, 0, { remark: '审æ¹äºº', approveType: 0, active: false, type: 0, objIds: [] }) |
| | | // this.apprList.push({ remark: '审æ¹äºº', active: false, type: '0' }) |
| | | }, |
| | | |
| | | // è·åç»ç»æ |
| | | getfindCompanyTreePage () { |
| | | getfindCompanyTreePage() { |
| | | fetchList() |
| | | .then(res => { |
| | | if (res && res.length > 0) { |
| | |
| | | } |
| | | }) |
| | | }, |
| | | getMemberList () { |
| | | getMemberList() { |
| | | memberListPost({ |
| | | model: { |
| | | companyId: this.searchForm.companyId || '', |
| | |
| | | erpOrgId: '', |
| | | hasFace: '', |
| | | hkStatus: '', |
| | | includeChild: false, |
| | | includeChild: true, |
| | | type: 2 |
| | | }, |
| | | page: 1, |
| | | capacity: 30 |
| | | capacity: 300 |
| | | }).then(res => { |
| | | this.memberList = res.records || [] |
| | | this.memberList.forEach(item => { |
| | |
| | | // console.log('defaultProps', res) |
| | | }) |
| | | }, |
| | | callback (row) { |
| | | callback(row) { |
| | | console.log(row) |
| | | this.$set(this.searchForm, 'companyId', row.id) |
| | | this.$set(this.searchForm, 'erpOrgId', row.erpId) |
| | | this.getMemberList() |
| | | }, |
| | | TransferSub () { |
| | | TransferSub() { |
| | | const { activeIndex } = this |
| | | if (this.searchForm.objIds && this.searchForm.objIds.length > 0) { |
| | | if (this.searchForm.objIds.length > 20) return this.$message.warning('æå¤éæ©20人') |
| | |
| | | this.isShowTransfer = false |
| | | console.log(this.searchForm.objIds) |
| | | }, |
| | | memDel (memIndex) { |
| | | memDel(memIndex) { |
| | | const { activeIndex } = this |
| | | this.apprList.forEach((item, index) => { |
| | | if (activeIndex === index) { |
| | |
| | | } |
| | | }) |
| | | }, |
| | | selStaff () { |
| | | selStaff() { |
| | | this.isShowTransfer = true |
| | | this.getMemberList() |
| | | }, |
| | | seleItem (i) { |
| | | seleItem(i) { |
| | | this.list.forEach((item, index) => { |
| | | item.active = index === i |
| | | }) |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | |
| | | .config_list { |
| | | width: 543px; |
| | | height: 100%; |
| | |
| | | box-sizing: border-box; |
| | | border: 1px solid #eeeeee; |
| | | background: #f7f7f7; |
| | | |
| | | .config_list_head { |
| | | width: 100%; |
| | | height: 40px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | |
| | | span { |
| | | font-size: 18px; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | } |
| | | } |
| | | |
| | | .config_content { |
| | | width: 100%; |
| | | height: calc(100% - 40px); |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | flex-direction: column; |
| | | |
| | | &::-webkit-scrollbar { |
| | | width: 0; |
| | | } |
| | | |
| | | .active { |
| | | border: 2px solid #4456ac !important; |
| | | } |
| | | |
| | | .yellow { |
| | | background: #e89e42 !important; |
| | | } |
| | | |
| | | .blue { |
| | | background: #5094f3 !important; |
| | | } |
| | | |
| | | .arrows { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | position: relative; |
| | | |
| | | .line { |
| | | width: 1px; |
| | | height: 60px; |
| | | background-color: #ccc; |
| | | } |
| | | |
| | | .add { |
| | | font-size: 40px; |
| | | color: #2080f7; |
| | |
| | | z-index: 999; |
| | | top: 10px; |
| | | } |
| | | |
| | | img { |
| | | width: 12px; |
| | | } |
| | | } |
| | | |
| | | .item { |
| | | width: 200px; |
| | | cursor: pointer; |
| | |
| | | position: relative; |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .head { |
| | | height: 32px; |
| | | line-height: 32px; |
| | | padding: 2px 12px; |
| | | color: #fff; |
| | | } |
| | | |
| | | .content { |
| | | flex: 1; |
| | | background-color: #fff; |
| | |
| | | padding: 0 12px; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | &:last-child { |
| | | margin: 0 !important; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .config_data { |
| | | flex: 1; |
| | | height: 100%; |
| | | margin-left: 20px; |
| | | |
| | | .config_data_submit { |
| | | margin-top: 50px; |
| | | } |
| | | |
| | | .config_data_item { |
| | | width: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | margin-bottom: 30px; |
| | | |
| | | &:last-child { |
| | | margin: 0 !important; |
| | | } |
| | | |
| | | .config_data_item_label { |
| | | font-size: 16px; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | margin-bottom: 20px; |
| | | |
| | | span { |
| | | font-size: 12px; |
| | | font-weight: 400; |
| | |
| | | margin-left: 10px; |
| | | } |
| | | } |
| | | |
| | | .config_data_item_reviewed { |
| | | width: 100%; |
| | | margin-top: 20px; |
| | | |
| | | .config_data_item_reviewed_r { |
| | | margin-top: 10px; |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | span { |
| | | flex-shrink: 0; |
| | | font-size: 14px; |
| | |
| | | color: #666666; |
| | | } |
| | | } |
| | | |
| | | .config_data_item_reviewed_label { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | span { |
| | | &:nth-child(1) { |
| | | font-size: 14px; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | |
| | | &:nth-child(2) { |
| | | font-size: 12px; |
| | | font-weight: 400; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .config_data_item_reviewed_content { |
| | | width: 400px; |
| | | margin-top: 10px; |
| | |
| | | display: flex; |
| | | align-items: flex-start; |
| | | flex-wrap: wrap; |
| | | |
| | | .add { |
| | | font-size: 12px; |
| | | font-weight: 400; |
| | |
| | | cursor: pointer; |
| | | margin-top: 3px; |
| | | } |
| | | |
| | | .config_data_item_reviewed_content_item { |
| | | padding: 3px 5px; |
| | | background: #f4f7fc; |
| | |
| | | box-sizing: border-box; |
| | | margin-right: 10px; |
| | | margin-bottom: 10px; |
| | | |
| | | span { |
| | | font-size: 12px; |
| | | font-weight: 400; |
| | | color: #333333; |
| | | } |
| | | |
| | | i { |
| | | color: #949ba2; |
| | | margin-left: 10px; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .staff_modal { |
| | | display: flex; |
| | | |
| | | .left { |
| | | width: 300px; |
| | | margin-right: 20px; |
| | | } |
| | | |
| | | .transfer { |
| | | height: 600px; |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | ::v-deep .el-transfer-panel{ |
| | | |
| | | ::v-deep .el-transfer-panel { |
| | | flex: 1; |
| | | height: 100%; |
| | | } |
| | | |
| | | ::v-deep .el-transfer-panel__body { |
| | | height: 500px; |
| | | } |
| | |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
| | | // é¢çº¦ 详æ
|
| | | export const driverApplyDetail = (data) => { |
| | | return http({ |
| | | url: 'visitsAdmin/cloudService/web/driverPlatform/getDetail', |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
| | |
| | | {
|
| | | "name": "pda",
|
| | | "appid": "__UNI__8789FB4",
|
| | | "description": "",
|
| | | "versionName": "1.0.0",
|
| | | "versionCode": "100",
|
| | | "transformPx": false,
|
| | | "h5": {
|
| | | "router": {
|
| | | "mode": "hash",
|
| | | "base": "./"
|
| | | },
|
| | | // "base" : "/h5/"
|
| | | "devServer": {
|
| | | "port": 8090,
|
| | | "historyApiFallback": true,
|
| | | "disableHostCheck": true,
|
| | | "proxy": {
|
| | | "/gateway_interface": {
|
| | | // è¿ä¸ªå段åéä¸ä½ é
ç½®çbasePrefixUrlä¸è´ï¼ç³»ç»è¯å«å°å¸¦æ/dev-api请æ±çå°åæ¶ï¼ä¼å¨å颿¼æ¥ä¸ä»£çæå¡å¨å°å
|
| | | "target" : "http://10.50.250.253:8088/gateway_interface", // 代çæå¡å¨ååæIPå°å
|
| | | // "target": "http://192.168.0.100:10010", // 代çæå¡å¨ååæIPå°å
|
| | | "changeOrigin": true, // å
许跨å |
| | | "pathRewrite": {
|
| | | "^/gateway_interface": "" // éåå°åï¼å¦æå®é
æ¥å£ä¸æ¯ä¸å¸¦/dev-apiï¼éè¦å°è¿ä¸ªåç¼ç½®ç©ºï¼å 为è¿ä¸ªåç¼åªæ¯ä¸ºäºè¯å«ç¨ï¼è¯å«å®ä¹å就没ç¨äº
|
| | | }
|
| | | }
|
| | | },
|
| | | "https": false
|
| | | }
|
| | | },
|
| | | /* 5+Appç¹æç¸å
³ */
|
| | | "app-plus": {
|
| | | "usingComponents": true,
|
| | | "nvueStyleCompiler": "uni-app",
|
| | | "compilerVersion": 3,
|
| | | "splashscreen": {
|
| | | "alwaysShowBeforeRender": true,
|
| | | "waiting": true,
|
| | | "autoclose": true,
|
| | | "delay": 0
|
| | | },
|
| | | /* 模åé
ç½® */
|
| | | "modules": {},
|
| | | /* åºç¨åå¸ä¿¡æ¯ */
|
| | | "distribute": {
|
| | | /* androidæå
é
ç½® */
|
| | | "android": {
|
| | | "permissions": [
|
| | | "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
| | | "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
| | | "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
| | | "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
|
| | | "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
|
| | | "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
|
| | | "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
|
| | | "<uses-permission android:name=\"android.permission.CAMERA\"/>",
|
| | | "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
|
| | | "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
|
| | | "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
|
| | | "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
|
| | | "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
| | | "<uses-feature android:name=\"android.hardware.camera\"/>",
|
| | | "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
| | | ]
|
| | | },
|
| | | /* iosæå
é
ç½® */
|
| | | "ios": {},
|
| | | /* SDKé
ç½® */
|
| | | "sdkConfigs": {}
|
| | | }
|
| | | },
|
| | | /* å¿«åºç¨ç¹æç¸å
³ */
|
| | | "quickapp": {},
|
| | | /* å°ç¨åºç¹æç¸å
³ */
|
| | | "mp-weixin": {
|
| | | "appid": "",
|
| | | "setting": {
|
| | | "urlCheck": false
|
| | | },
|
| | | "usingComponents": true
|
| | | },
|
| | | "mp-alipay": {
|
| | | "usingComponents": true
|
| | | },
|
| | | "mp-baidu": {
|
| | | "usingComponents": true
|
| | | },
|
| | | "mp-toutiao": {
|
| | | "usingComponents": true
|
| | | },
|
| | | "uniStatistics": {
|
| | | "enable": false
|
| | | },
|
| | | "vueVersion": "2"
|
| | | } |
| | | { |
| | | "name" : "æå°è°åº¦", |
| | | "appid" : "__UNI__8789FB4", |
| | | "description" : "", |
| | | "versionName" : "1.0.0", |
| | | "versionCode" : "100", |
| | | "transformPx" : false, |
| | | "h5" : { |
| | | "router" : { |
| | | "mode" : "hash", |
| | | "base" : "./" |
| | | }, |
| | | // "base" : "/h5/" |
| | | "devServer" : { |
| | | "port" : 8090, |
| | | "historyApiFallback" : true, |
| | | "disableHostCheck" : true, |
| | | "proxy" : { |
| | | "/gateway_interface" : { |
| | | // è¿ä¸ªå段åéä¸ä½ é
ç½®çbasePrefixUrlä¸è´ï¼ç³»ç»è¯å«å°å¸¦æ/dev-api请æ±çå°åæ¶ï¼ä¼å¨å颿¼æ¥ä¸ä»£çæå¡å¨å°å |
| | | "target" : "http://10.50.250.253:8088/gateway_interface", // 代çæå¡å¨ååæIPå°å |
| | | |
| | | // "target": "http://192.168.0.100:10010", // 代çæå¡å¨ååæIPå°å |
| | | "changeOrigin" : true, // å
许跨å |
| | | "pathRewrite" : { |
| | | "^/gateway_interface" : "" // éåå°åï¼å¦æå®é
æ¥å£ä¸æ¯ä¸å¸¦/dev-apiï¼éè¦å°è¿ä¸ªåç¼ç½®ç©ºï¼å 为è¿ä¸ªåç¼åªæ¯ä¸ºäºè¯å«ç¨ï¼è¯å«å®ä¹å就没ç¨äº |
| | | } |
| | | } |
| | | }, |
| | | "https" : false |
| | | } |
| | | }, |
| | | /* 5+Appç¹æç¸å
³ */ |
| | | "app-plus" : { |
| | | "usingComponents" : true, |
| | | "nvueStyleCompiler" : "uni-app", |
| | | "compilerVersion" : 3, |
| | | "splashscreen" : { |
| | | "alwaysShowBeforeRender" : true, |
| | | "waiting" : true, |
| | | "autoclose" : true, |
| | | "delay" : 0 |
| | | }, |
| | | /* 模åé
ç½® */ |
| | | "modules" : {}, |
| | | /* åºç¨åå¸ä¿¡æ¯ */ |
| | | "distribute" : { |
| | | /* androidæå
é
ç½® */ |
| | | "android" : { |
| | | "permissions" : [ |
| | | "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>", |
| | | "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", |
| | | "<uses-permission android:name=\"android.permission.VIBRATE\"/>", |
| | | "<uses-permission android:name=\"android.permission.READ_LOGS\"/>", |
| | | "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>", |
| | | "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", |
| | | "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", |
| | | "<uses-permission android:name=\"android.permission.CAMERA\"/>", |
| | | "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>", |
| | | "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>", |
| | | "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>", |
| | | "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>", |
| | | "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", |
| | | "<uses-feature android:name=\"android.hardware.camera\"/>", |
| | | "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>" |
| | | ] |
| | | }, |
| | | /* iosæå
é
ç½® */ |
| | | "ios" : { |
| | | "dSYMs" : false |
| | | }, |
| | | /* SDKé
ç½® */ |
| | | "sdkConfigs" : { |
| | | "ad" : {} |
| | | } |
| | | } |
| | | }, |
| | | /* å¿«åºç¨ç¹æç¸å
³ */ |
| | | "quickapp" : {}, |
| | | /* å°ç¨åºç¹æç¸å
³ */ |
| | | "mp-weixin" : { |
| | | "appid" : "", |
| | | "setting" : { |
| | | "urlCheck" : false |
| | | }, |
| | | "usingComponents" : true |
| | | }, |
| | | "mp-alipay" : { |
| | | "usingComponents" : true |
| | | }, |
| | | "mp-baidu" : { |
| | | "usingComponents" : true |
| | | }, |
| | | "mp-toutiao" : { |
| | | "usingComponents" : true |
| | | }, |
| | | "uniStatistics" : { |
| | | "enable" : false |
| | | }, |
| | | "vueVersion" : "2" |
| | | } |
| | |
| | | "navigationBarTitleText": "é
ç½®æ¾ç¤ºæå°",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | }, |
| | | { |
| | | "path": "pages/index/SubDetail", |
| | | "style": { |
| | | "navigationBarTitleText": "é¢çº¦è¯¦æ
", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }
|
| | | ],
|
| | | "globalStyle": {
|
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="main_app"> |
| | | <view class="status_wrap"> |
| | | <view class="name">{{info.driverName}}çå
¥åé¢çº¦</view> |
| | | <view class="gray">{{info.carCodeFront}}</view> |
| | | <!-- <view class="desc" :class="{ |
| | | gray: info.businessStatus == '2' || info.businessStatus == '3' || info.businessStatus == '4', |
| | | }">{{ infoStatus }}</view> --> |
| | | <view class="status" v-if="info.status != 2 && info.status != 3">{{ statusMap[info.status] }}</view> |
| | | <image v-if="info.status == 2" class="icon" src="@/static/ic_passed@2x.png" mode=""></image> |
| | | <image v-if="info.status == 3" class="icon" src="@/static/ic_refused@2x.png" mode=""></image> |
| | | </view> |
| | | <!-- --> |
| | | <view class="emyty"></view> |
| | | <view class="module_list"> |
| | | <view class="item"> |
| | | <view class="label">å
¥ååå </view> |
| | | <view class="value">{{info.inReason}}</view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="label">ååç¼å·</view> |
| | | <view class="value">{{info.contractNum}}</view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="label">å°åºæ¶é´</view> |
| | | <view v-if="info.arriveDate" class="value">{{info.arriveDate.slice(0,16)}}</view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="label">åè¿è¯ç
§ç</view> |
| | | <view class="value"> |
| | | <image |
| | | v-if="info.transportImg" |
| | | class="avatar_wrap" |
| | | :src="info.prefixUrl + info.transportImg" |
| | | ></image> |
| | | </view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="label">å
¥åºç±»å</view> |
| | | <view class="value">{{info.inType == 0 ? 'æ´æç' : 'ä»¶ç'}}</view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="label">æ»è¿æ°é</view> |
| | | <view class="value">{{info.totalNum}}䏿¯</view> |
| | | </view> |
| | | <view class="emyty"></view> |
| | | <view class="item"> |
| | | <view class="label">叿ºå§å</view> |
| | | <view class="value">{{info.driverName}} |
| | | </view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="label">ææºå·</view> |
| | | <view class="value">{{info.driverPhone}}</view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="label">车çç
§</view> |
| | | <view class="value">å {{info.carCodeFront}}ï¼å {{info.carCodeBack}}</view> |
| | | </view> |
| | | </view> |
| | | <!-- æµç¨ --> |
| | | <view class="flow_wrap"> |
| | | <view class="flow_title">æµç¨</view> |
| | | <view class="list" v-if=" |
| | | info.approveDateVO != null && info.approveDateVO.approveList != null |
| | | "> |
| | | <view class="item" v-for="(item, index) in info.approveDateVO.approveList" :key="item.id"> |
| | | <view class="separate"></view> |
| | | <view class="avatar"> |
| | | <image v-if="item.type == 1" class="img" src="@/static/staff/ic_chaosong@2x.png" /> |
| | | <image v-else-if="item.approveType == 1 || item.approveType == 0" class="img" |
| | | src="@/static/staff/ic_shenpiren@2x.png" /> |
| | | <image v-else-if="item.faceImg" :src="item.faceImg" class="img"></image> |
| | | <span v-else class="img_name">{{item.memberName && item.memberName.slice(0,1)}}</span> |
| | | <image v-if="item.status == 2" class="status" src="@/static/staff/liucheng_success@2x.png" |
| | | mode="widthFix" /> |
| | | <image v-if="item.status == 3" class="status" src="@/static/staff/liucheng_fail@2x.png" mode="widthFix" /> |
| | | </view> |
| | | <view class="content"> |
| | | <view class="head"> |
| | | <view class="event">{{ item.title }}</view> |
| | | <view class="time">{{ item.checkDate }}</view> |
| | | </view> |
| | | <view class="name_wrap"> |
| | | <text>{{ item.memberName |
| | | }}<text :class="{ status: item.statusInfo == 'å¤çä¸' || item.status == '1' }" |
| | | v-if="item.statusInfo">({{ item.statusInfo }})</text></text> |
| | | </view> |
| | | <view v-if="item.checkInfo" class="remark">{{ |
| | | item.checkInfo |
| | | }}</view> |
| | | <!-- æé人 --> |
| | | <view v-if="item.approveType == 0 || item.type == 1 || item.approveType == 1" class="children"> |
| | | <view class="child" v-for="child in item.approveList" :key="child.id"> |
| | | <image v-if="child.faceImg" class="child_img" :src="child.faceImg" /> |
| | | <view v-else class="child_name">{{ child.memberName && child.memberName.slice(0,1) }}</view> |
| | | <view>{{ child.memberName }}</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="emyty"></view> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { driverApplyDetail } from '@/api' |
| | | export default { |
| | | data() { |
| | | return { |
| | | showApprModal: false, |
| | | checkInfo: '', |
| | | infoStatus: '', |
| | | flag: '1', |
| | | info: {}, |
| | | type: 0, |
| | | statusMap: { |
| | | 0: 'å¾
审æ¹', |
| | | 1: '审æ¹ä¸', |
| | | 2: 'å·²éè¿', |
| | | 3: 'å·²æç»', |
| | | 4: '已忶', |
| | | }, |
| | | } |
| | | }, |
| | | onLoad(option) { |
| | | // this.type = option.objType |
| | | // this.infoStatus = option.info |
| | | this.getDetail(option.id) |
| | | }, |
| | | methods: { |
| | | getDetail(id) { |
| | | driverApplyDetail({id}).then(res => { |
| | | this.info = res.data |
| | | if(this.info.approveDateVO && this.info.approveDateVO.approveList.length > 0 ){ |
| | | this.info.approveDateVO.approveList.forEach(item => { |
| | | if(item.approveList && item.approveList.length == 1 && item.type !== 1){ |
| | | item.title = item.approveList[0].title |
| | | item.faceImg = item.approveList[0].faceImg |
| | | item.memberName = item.approveList[0].memberName |
| | | item.statusInfo = item.approveList[0].statusInfo |
| | | item.approveList = [] |
| | | } |
| | | }) |
| | | } |
| | | console.log('this.info.approveDateVO', this.info.approveDateVO.approveList); |
| | | }) |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| | | <style> |
| | | page { |
| | | background-color: #f7f7f7; |
| | | } |
| | | </style> |
| | | <style lang="scss"> |
| | | .main_app { |
| | | background-color: #fff; |
| | | padding-bottom: 0; |
| | | |
| | | .flow_wrap { |
| | | padding: 30rpx 0; |
| | | |
| | | .flow_title { |
| | | font-weight: 600; |
| | | font-size: 32rpx; |
| | | color: #222222; |
| | | margin-bottom: 24rpx; |
| | | } |
| | | |
| | | .list { |
| | | .item { |
| | | display: flex; |
| | | margin-bottom: 48rpx; |
| | | position: relative; |
| | | |
| | | .separate { |
| | | position: absolute; |
| | | width: 4rpx; |
| | | height: 100%; |
| | | background-color: #eeeeee; |
| | | left: 40rpx; |
| | | transform: translate(-50%, 0); |
| | | top: 80rpx; |
| | | } |
| | | |
| | | .avatar { |
| | | width: 80rpx; |
| | | height: 80rpx; |
| | | position: relative; |
| | | margin-right: 20rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | |
| | | .img { |
| | | width: 80rpx; |
| | | height: 80rpx; |
| | | border-radius: 50%; |
| | | } |
| | | |
| | | .img_name { |
| | | font-size: 32rpx; |
| | | color: #FFFFFF; |
| | | } |
| | | |
| | | .status { |
| | | width: 28rpx; |
| | | height: 28rpx; |
| | | border-radius: 50%; |
| | | position: absolute; |
| | | right: 0; |
| | | bottom: 0; |
| | | } |
| | | } |
| | | |
| | | .content { |
| | | flex: 1; |
| | | |
| | | .head { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-bottom: 4rpx; |
| | | |
| | | .event { |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .time { |
| | | font-size: 26rpx; |
| | | color: #999999; |
| | | } |
| | | } |
| | | |
| | | .name_wrap { |
| | | font-size: 26rpx; |
| | | color: #777777; |
| | | |
| | | .status { |
| | | color: $uni-color-primary; |
| | | } |
| | | } |
| | | |
| | | .children { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | margin-top: 12rpx; |
| | | |
| | | .child { |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | align-items: center; |
| | | margin-right: 12rpx; |
| | | font-size: 26rpx; |
| | | color: #777777; |
| | | |
| | | .child_img { |
| | | width: 48rpx; |
| | | height: 48rpx; |
| | | border-radius: 50%; |
| | | margin-bottom: 2rpx; |
| | | } |
| | | |
| | | .child_name { |
| | | margin-bottom: 2rpx; |
| | | width: 48rpx; |
| | | height: 48rpx; |
| | | text-align: center; |
| | | justify-content: center; |
| | | padding-top: 4rpx; |
| | | font-size: 28rpx; |
| | | border-radius: 50%; |
| | | color: #FFFFFF; |
| | | background-color: $uni-color-primary; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .remark { |
| | | margin-top: 12rpx; |
| | | background-color: #f7f7f7; |
| | | padding: 14rpx 20rpx; |
| | | border-radius: 8rpx; |
| | | font-size: 26rpx; |
| | | color: #666666; |
| | | line-height: 36rpx; |
| | | } |
| | | } |
| | | |
| | | .carbon { |
| | | display: flex; |
| | | width: 590rpx; |
| | | overflow-x: auto; |
| | | margin-top: 12rpx; |
| | | |
| | | .carbon_item { |
| | | text-align: center; |
| | | flex-shrink: 0; |
| | | width: 100rpx; |
| | | |
| | | image { |
| | | width: 60rpx; |
| | | height: 60rpx; |
| | | margin: 0 auto; |
| | | } |
| | | |
| | | view { |
| | | font-size: 26rpx; |
| | | color: #777777; |
| | | } |
| | | } |
| | | } |
| | | |
| | | &:nth-last-child(1) { |
| | | .separate { |
| | | height: 0; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .module_list { |
| | | .item { |
| | | padding: 30rpx 0; |
| | | border-bottom: 1rpx solid #e5e5e5; |
| | | |
| | | .label { |
| | | font-size: 26rpx; |
| | | color: #666666; |
| | | margin-bottom: 20rpx; |
| | | } |
| | | |
| | | .value { |
| | | font-size: 30rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .avatar_wrap { |
| | | margin-right: 20rpx; |
| | | width: 120rpx; |
| | | height: 120rpx; |
| | | border-radius: 8rpx; |
| | | border: 2rpx solid #e5e5e5; |
| | | } |
| | | |
| | | .info { |
| | | flex: 1; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | font-size: 26rpx; |
| | | color: #666666; |
| | | |
| | | .name { |
| | | font-size: 30rpx; |
| | | color: #333333; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .status_wrap { |
| | | position: relative; |
| | | padding: 30rpx 0; |
| | | |
| | | .name { |
| | | font-weight: 600; |
| | | font-size: 32rpx; |
| | | margin-bottom: 20rpx; |
| | | color: #222222; |
| | | } |
| | | |
| | | .desc { |
| | | font-size: 26rpx; |
| | | color: #ed4545; |
| | | margin-bottom: 12rpx; |
| | | } |
| | | .gray { |
| | | color: #999999; |
| | | margin-bottom: 12rpx; |
| | | } |
| | | |
| | | .status { |
| | | position: absolute; |
| | | right: -30rpx; |
| | | top: 0; |
| | | height: 60rpx; |
| | | line-height: 60rpx; |
| | | padding: 0 32rpx; |
| | | border-radius: 0rpx 0rpx 0rpx 30rpx; |
| | | background-color: #e9edff; |
| | | color: $uni-color-primary; |
| | | } |
| | | .icon{ |
| | | width: 120rpx; |
| | | height: 120rpx; |
| | | border-radius: 50%; |
| | | position: absolute; |
| | | right: 0rpx; |
| | | top: 20rpx; |
| | | |
| | | } |
| | | } |
| | | |
| | | .main_footer { |
| | | padding-bottom: 64rpx; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | |
| | | .btn { |
| | | width: 336rpx; |
| | | height: 88rpx; |
| | | line-height: 88rpx; |
| | | background: #ffffff; |
| | | border-radius: 44rpx; |
| | | border: 1rpx solid #999999; |
| | | font-size: 32rpx; |
| | | text-align: center; |
| | | margin: 16rpx 0; |
| | | } |
| | | |
| | | .agree { |
| | | background: $uni-color-primary; |
| | | color: #fff; |
| | | border: 1rpx solid $uni-color-primary; |
| | | } |
| | | } |
| | | |
| | | .appr_modal { |
| | | padding: 36rpx 30rpx 0; |
| | | |
| | | .title { |
| | | font-weight: 600; |
| | | font-size: 32rpx; |
| | | color: #222222; |
| | | margin-bottom: 40rpx; |
| | | text-align: center; |
| | | } |
| | | |
| | | textarea { |
| | | box-sizing: border-box; |
| | | width: 690rpx; |
| | | background-color: #f7f7f7; |
| | | font-size: 28rpx; |
| | | color: #333333; |
| | | padding: 24rpx; |
| | | border-radius: 8rpx; |
| | | margin-bottom: 30rpx; |
| | | } |
| | | } |
| | | |
| | | .emyty { |
| | | width: 750rpx; |
| | | height: 20rpx; |
| | | background-color: #f7f7f7; |
| | | margin: 0 -30rpx; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | </view>
|
| | | <view class="line" v-else>
|
| | | <text class="label">åååå·</text>
|
| | | <text class="value">{{ item.contractNum }}</text>
|
| | | <text class="value">{{ item.contractNum }}</text> |
| | | <text class="primaryColor" @click="subDetail(item)">é¢çº¦è¯¦æ
</text>
|
| | | </view>
|
| | | <view class="line">
|
| | | <text class="label">驾驶å</text>
|
| | |
| | | </view>
|
| | | <view class="line" v-else>
|
| | | <text class="label">åååå·</text>
|
| | | <text class="value">{{ item.contractNum }}</text>
|
| | | <text class="value">{{ item.contractNum }}</text> |
| | | <text class="primaryColor" @click="subDetail(item)">é¢çº¦è¯¦æ
</text>
|
| | | </view>
|
| | | <view class="line">
|
| | | <text class="label">驾驶å</text>
|
| | |
| | | this.wmsInfo = res.data
|
| | | this.showDetail = true
|
| | | })
|
| | | }, |
| | | subDetail(item) { |
| | | uni.navigateTo({ |
| | | url: `/pages/index/SubDetail?id=${item.bookId}` |
| | | }) |
| | | },
|
| | | handleFinish(item) {
|
| | | finishWork({
|
| | |
| | | <view class="line" v-else> |
| | | <text class="label">åååå·</text> |
| | | <text class="value">{{ item.contractNum }}</text> |
| | | <text class="primaryColor" @click="subDetail(item)">é¢çº¦è¯¦æ
</text> |
| | | </view> |
| | | <view class="line"> |
| | | <text class="label">驾驶å</text> |
| | |
| | | this.showDetail = true |
| | | }) |
| | | }, |
| | | subDetail(item) { |
| | | uni.navigateTo({ |
| | | url: `/pages/index/SubDetail?id=${item.bookId}` |
| | | }) |
| | | }, |
| | | getPlatformGroup() { |
| | | getPlatformGroupList({ |
| | | queryData: 1, |