评价机构信息
This commit is contained in:
@@ -1,400 +1,364 @@
|
|||||||
<template>
|
<template>
|
||||||
<AppLayout :title="title" :show-bg-image="false" >
|
<div class="app-box">
|
||||||
<view class="info-box">
|
<div class="con-box">
|
||||||
<view class="info-item info-line">
|
<!-- <view class="collection-search">
|
||||||
<image class="info-img" :src="baseUrl+'/dispatch/person-icon.png'" mode=""></image>
|
<view class="search-content">
|
||||||
<view class="info-label">
|
<view class="header-input button-click">
|
||||||
人员姓名
|
<uni-icons class="iconsearch" color="#6A6A6A" type="search" size="22"></uni-icons>
|
||||||
</view>
|
<input
|
||||||
<view class="info-value">
|
class="input"
|
||||||
{{personInfo.name}}
|
v-model="searchKeyword"
|
||||||
</view>
|
@confirm="searchVideo"
|
||||||
</view>
|
placeholder="输入考试名称"
|
||||||
<view class="info-item">
|
placeholder-class="inputplace"
|
||||||
<image class="info-img" :src="baseUrl+'/dispatch/help-icon.png'" mode=""></image>
|
/>
|
||||||
<view class="info-label">
|
<uni-icons
|
||||||
帮扶类型
|
v-if="searchKeyword"
|
||||||
</view>
|
class="clear-icon"
|
||||||
<view class="info-value">
|
type="clear"
|
||||||
{{personInfo.taskType}}
|
size="24"
|
||||||
</view>
|
color="#999"
|
||||||
</view>
|
@click="clearSearch"
|
||||||
</view>
|
/>
|
||||||
<view class="main-list" :style="getBackgroundStyle('k.png')">
|
</view>
|
||||||
<view class="list-top">
|
</view>
|
||||||
<view class="list-title">
|
</view> -->
|
||||||
<text>新增跟进记录</text>
|
<scroll-view scroll-y class="main-scroll" @scrolltolower="handleScrollToLower">
|
||||||
<view class="title-line"></view>
|
<div class="cards" v-for="(item,index) in dataList" :key="item.examPaperId">
|
||||||
</view>
|
<div class="cardHead">
|
||||||
</view>
|
<div class="cardHeadLeft">
|
||||||
|
<div class="cardTitle">{{item.organName}}</div>
|
||||||
<view class="form-container">
|
</div>
|
||||||
<uni-forms ref="formRef" v-model="formData" :rules="rules" validate-trigger="submit" >
|
<div class="rightBtn" @click="handleOperation(item)">机构详情</div>
|
||||||
<!-- 跟进日期 -->
|
</div>
|
||||||
<uni-forms-item label="跟进日期:" name="followDate" required >
|
<div class="heng"></div>
|
||||||
<uni-datetime-picker class="picker-value" type="date" placeholder="请选择跟进日期" v-model="formData.followDate" @change="onFollowDateChange" />
|
<div class="cardCon">
|
||||||
</uni-forms-item>
|
<div class="conten">机构联系人:{{item.contactName}}</div>
|
||||||
|
<div class="conten">联系方式:{{item.contactPhone}}</div>
|
||||||
<!-- 跟进方式 -->
|
<div class="conten">机构地址:{{item.address}}</div>
|
||||||
<uni-forms-item label="跟进方式:" name="followWay" required >
|
</div>
|
||||||
<uni-data-select v-model="formData.followWay" placeholder="请选择跟进方式" :localdata="followWays" @change="onMethodChange"></uni-data-select>
|
</div>
|
||||||
</uni-forms-item>
|
</scroll-view>
|
||||||
|
</div>
|
||||||
<!-- 跟进内容 -->
|
|
||||||
<uni-forms-item label="跟进内容:" name="content" required>
|
</div>
|
||||||
<uni-easyinput type="textarea" v-model="formData.content" placeholder="请输入跟进内容"></uni-easyinput>
|
|
||||||
</uni-forms-item>
|
|
||||||
|
|
||||||
<!-- 跟进结果 -->
|
|
||||||
<uni-forms-item label="跟进结果:" name="result" required>
|
|
||||||
<uni-easyinput type="textarea" v-model="formData.result" placeholder="请输入跟进结果"></uni-easyinput>
|
|
||||||
</uni-forms-item>
|
|
||||||
|
|
||||||
<!-- 下一步计划 -->
|
|
||||||
<uni-forms-item label="下一步计划:" name="nextPlan">
|
|
||||||
<uni-easyinput type="textarea" v-model="formData.nextPlan" placeholder="请输入下一步计划(可选)"></uni-easyinput>
|
|
||||||
</uni-forms-item>
|
|
||||||
|
|
||||||
<!-- 下次联系时间 -->
|
|
||||||
<uni-forms-item label="下次联系:" name="nextContactDate" >
|
|
||||||
<uni-datetime-picker class="picker-value" type="date" placeholder="请选择跟进日期" v-model="formData.nextContactDate" @change="onDateChange" />
|
|
||||||
</uni-forms-item>
|
|
||||||
</uni-forms>
|
|
||||||
|
|
||||||
<!-- 按钮组 -->
|
|
||||||
<view class="button-group">
|
|
||||||
<button class="btn submit-btn" @click="handleSubmit">保存跟进</button>
|
|
||||||
<button class="btn reset-btn" @click="handleReset">重置</button>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="main-list" :style="getBackgroundStyle('k.png')">
|
|
||||||
<view class="list-top">
|
|
||||||
<view class="list-title">
|
|
||||||
<text>跟进历史记录</text>
|
|
||||||
<view class="title-line"></view>
|
|
||||||
</view>
|
|
||||||
<view class="title-total">
|
|
||||||
共<text class="total-num">{{followListNum}}</text>条记录
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="list-box" v-if="followListNum>0">
|
|
||||||
<uni-steps :options="followList" active-color="#007AFF" :active="active" direction="column" />
|
|
||||||
</view>
|
|
||||||
<empty v-else pdTop="200"></empty>
|
|
||||||
</view>
|
|
||||||
</AppLayout>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { inject, ref, reactive } from 'vue';
|
import { inject, ref, reactive } from 'vue';
|
||||||
import { onLoad } from '@dcloudio/uni-app';
|
import { onLoad, onShow } from '@dcloudio/uni-app';
|
||||||
const { $api, navTo, navBack } = inject('globalFunction');
|
const { $api, navTo, navBack,urls } = inject('globalFunction');
|
||||||
import config from "@/config.js"
|
import config from "@/config.js"
|
||||||
|
const userInfo = ref({});
|
||||||
const title = ref('');
|
const Authorization = ref('');
|
||||||
const formData = reactive({
|
const searchKeyword = ref('');
|
||||||
goalPersonId:'',
|
const dataList=ref([])
|
||||||
followDate: '',
|
const pageSize=ref(10)
|
||||||
followWay: '',
|
const pageNum=ref(1)
|
||||||
content: '',
|
const totalNum=ref(0)
|
||||||
result: '',
|
|
||||||
nextPlan: '',
|
|
||||||
nextContactDate: ''
|
|
||||||
})
|
|
||||||
const personInfo=ref({
|
|
||||||
goalPersonId:'',
|
|
||||||
name:'',
|
|
||||||
taskType:'',
|
|
||||||
task_id:''
|
|
||||||
})
|
|
||||||
const followWays = ref([])
|
|
||||||
const followList = ref([])
|
|
||||||
const followListNum=ref(0)
|
|
||||||
const active=ref(null)
|
|
||||||
// 表单引用
|
|
||||||
const formRef = ref(null)
|
|
||||||
|
|
||||||
// 校验规则
|
|
||||||
const rules = {
|
|
||||||
followDate: {
|
|
||||||
rules: [{
|
|
||||||
required: true,
|
|
||||||
errorMessage: '请选择跟进日期'
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
followWay: {
|
|
||||||
rules: [{
|
|
||||||
required: true,
|
|
||||||
errorMessage: '请选择跟进方式'
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
content: {
|
|
||||||
rules: [{
|
|
||||||
required: true,
|
|
||||||
errorMessage: '请填写跟进内容'
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
result: {
|
|
||||||
rules: [{
|
|
||||||
required: true,
|
|
||||||
errorMessage: '请填写跟进结果'
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const baseUrl = config.imgBaseUrl
|
const baseUrl = config.imgBaseUrl
|
||||||
const getBackgroundStyle = (imageName) => ({
|
const handleScrollToLower = () => {
|
||||||
backgroundImage: `url(${baseUrl}/dispatch/${imageName})`,
|
getDataList('add');
|
||||||
backgroundSize: 'cover', // 覆盖整个容器
|
};
|
||||||
backgroundPosition: 'center', // 居中
|
onLoad(() => {
|
||||||
backgroundRepeat: 'no-repeat'
|
|
||||||
});
|
});
|
||||||
|
onShow(()=>{
|
||||||
const onFollowDateChange = (e)=>{
|
Authorization.value=uni.getStorageSync('Padmin-Token')||''
|
||||||
formData.followDate=e
|
getDataList('refresh');
|
||||||
}
|
})
|
||||||
const onMethodChange = (e) => {
|
// 搜索视频
|
||||||
formData.followWay=e
|
function searchVideo() {
|
||||||
}
|
getDataList('refresh');
|
||||||
// 事件处理
|
|
||||||
const onDateChange = ( e) => {
|
|
||||||
formData.nextContactDate=e
|
|
||||||
}
|
|
||||||
function getFollowList(){
|
|
||||||
let header={
|
|
||||||
'Authorization':uni.getStorageSync('fourLevelLinkage-token'),
|
|
||||||
'Content-Type': "application/x-www-form-urlencoded"
|
|
||||||
}
|
|
||||||
let params={
|
|
||||||
personId:personInfo.value.person_id,
|
|
||||||
taskId:personInfo.value.task_id
|
|
||||||
}
|
|
||||||
$api.myRequest('/dispatch/assist/records/getFollowList', params,'get',9100,header).then((resData) => {
|
|
||||||
console.log("resData",resData)
|
|
||||||
if(resData && resData.code == 200){
|
|
||||||
if(resData.data && resData.data.length>0){
|
|
||||||
followListNum.value=resData.data.length
|
|
||||||
resData.data.forEach(item=>{
|
|
||||||
const obj={
|
|
||||||
title:item.followDate,
|
|
||||||
desc:`跟进方式:${getFollowWaysLabelByValue(item.followWay)}\n跟进人:${item.createByName}\n跟进内容:${item.content}`
|
|
||||||
}
|
|
||||||
followList.value.push(obj)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDictionary(){
|
// 清除搜索内容
|
||||||
$api.myRequest('/system/public/dict/data/type/assist_follow_way').then((resData) => {
|
function clearSearch() {
|
||||||
if(resData && resData.code == 200){
|
searchKeyword.value = '';
|
||||||
resData.data.forEach(item=>{
|
getDataList('refresh');
|
||||||
const obj = {
|
|
||||||
value: item.dictValue,
|
|
||||||
text: item.dictLabel
|
|
||||||
}
|
|
||||||
followWays.value.push(obj)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
function getFollowWaysLabelByValue(value) {
|
// 获取考试列表
|
||||||
if (!Array.isArray(followWays.value)) {
|
function getDataList(type = 'add') {
|
||||||
return ''
|
let maxPage=Math.ceil(totalNum.value/pageSize.value)
|
||||||
}
|
let params={}
|
||||||
const item = followWays.value.find(item => item.value === String(value))
|
if (type === 'refresh') {
|
||||||
return item ? item.text : '暂无跟进方式'
|
pageNum.value = 1;
|
||||||
}
|
params={
|
||||||
const handleSubmit = () => {
|
address:"",
|
||||||
formRef.value?.validate()
|
pageSize:pageSize.value,
|
||||||
.then(() => {
|
pageNum:pageNum.value,
|
||||||
let header={
|
|
||||||
'Authorization':uni.getStorageSync('fourLevelLinkage-token')
|
|
||||||
}
|
}
|
||||||
formData.goalPersonId=personInfo.value.goalPersonId
|
$api.myRequest('/train/public/rate/organ/table', params).then((resData) => {
|
||||||
$api.myRequest('/dispatch/assist/records/addRecords', formData,'post',9100,header).then((resData) => {
|
if(resData.code==200){
|
||||||
console.log("resData",resData)
|
dataList.value=resData.rows
|
||||||
if(resData && resData.code == 200){
|
totalNum.value=resData.total
|
||||||
handleReset()
|
|
||||||
uni.showToast({
|
|
||||||
title: '保存成功',
|
|
||||||
icon: 'success',
|
|
||||||
duration: 2000
|
|
||||||
});
|
|
||||||
}else{
|
|
||||||
uni.showToast({
|
|
||||||
title: resData.msg,
|
|
||||||
icon: 'none',
|
|
||||||
duration: 2000
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
})
|
}
|
||||||
.catch((errors) => {
|
if (type === 'add' && pageNum.value < maxPage) {
|
||||||
console.log('校验失败:', errors);
|
pageNum.value += 1;
|
||||||
});
|
params={
|
||||||
};
|
address:"",
|
||||||
|
pageSize:pageSize.value,
|
||||||
const handleReset = () => {
|
pageNum:pageNum.value,
|
||||||
formData.followDate = '';
|
}
|
||||||
formData.followWay = '';
|
$api.myRequest('/train/public/rate/organ/table', params).then((resData) => {
|
||||||
formData.content = '';
|
if(resData.code==200){
|
||||||
formData.result = '';
|
dataList.value=dataList.value.concat(resData.rows)
|
||||||
formData.nextPlan = '';
|
totalNum.value=resData.total
|
||||||
formData.nextContactDate = '';
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
onLoad((options) => {
|
|
||||||
personInfo.value.person_id=options.person_id
|
|
||||||
personInfo.value.name=options.name
|
|
||||||
personInfo.value.taskType=options.taskType
|
|
||||||
personInfo.value.task_id=options.task_id
|
|
||||||
getDictionary()
|
|
||||||
getFollowList()
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
function handleOperation(row) {
|
||||||
|
navTo(`/packageB/institution/evaluationAgencyDetail?organId=${row.organId}`);
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
image
|
.app-box{
|
||||||
height: 100%
|
width: 100%;
|
||||||
width: 100%
|
height: 100vh;
|
||||||
.info-box
|
position: relative;
|
||||||
margin: 30rpx 30rpx
|
.con-box{
|
||||||
background: linear-gradient(0deg, #D9ECFF 0%, #F0F7FF 100%)
|
position: absolute;
|
||||||
border-radius: 20rpx
|
width: 100%;
|
||||||
padding: 40rpx 0
|
height: 100%;
|
||||||
display: flex
|
left: 0;
|
||||||
align-items: center
|
top:0;
|
||||||
.info-img
|
z-index: 10;
|
||||||
width: 40rpx
|
padding: 20rpx 28rpx;
|
||||||
height: 40rpx
|
box-sizing: border-box;
|
||||||
margin-bottom: 20rpx
|
overflow: hidden;
|
||||||
.info-line
|
.collection-search{
|
||||||
border-right: 2rpx solid #B7D6FF
|
padding: 10rpx 20rpx;
|
||||||
.info-item
|
.search-content{
|
||||||
display: flex
|
position: relative
|
||||||
flex-direction: column
|
display: flex
|
||||||
align-items: center
|
align-items: center
|
||||||
justify-content: center
|
padding: 14rpx 0
|
||||||
width: 50%
|
.header-input{
|
||||||
.info-label
|
padding: 0
|
||||||
font-size: 26rpx
|
width: calc(100%);
|
||||||
color: #6E7E9B
|
position: relative
|
||||||
margin-bottom: 20rpx
|
.iconsearch{
|
||||||
.info-value
|
position: absolute
|
||||||
font-weight: bold
|
left: 30rpx;
|
||||||
font-size: 28rpx
|
top: 50%
|
||||||
color: #3D61AC
|
transform: translate(0, -50%)
|
||||||
.main-list
|
z-index: 1
|
||||||
background-color: #ffffff
|
}
|
||||||
padding: 20rpx 20rpx 28rpx 20rpx
|
.input{
|
||||||
margin: 30rpx 30rpx
|
padding: 0 80rpx 0 80rpx
|
||||||
box-shadow: 0px 3px 20px 0px rgba(0,105,234,0.1)
|
height: 80rpx;
|
||||||
border-radius: 12px
|
background: #FFFFFF;
|
||||||
.list-top
|
border-radius: 75rpx 75rpx 75rpx 75rpx;
|
||||||
display: flex
|
border: 2rpx solid #ECECEC
|
||||||
align-items: center
|
font-size: 28rpx;
|
||||||
justify-content: space-between
|
}
|
||||||
.list-title
|
.clear-icon{
|
||||||
font-weight: bold
|
position: absolute
|
||||||
font-size: 36rpx
|
right: 30rpx;
|
||||||
color: #404040
|
top: 50%
|
||||||
position: relative
|
transform: translate(0, -50%)
|
||||||
|
z-index: 1
|
||||||
.title-line
|
cursor: pointer
|
||||||
position: absolute
|
}
|
||||||
bottom: -10rpx
|
.inputplace{
|
||||||
left: 70rpx
|
font-weight: 400;
|
||||||
width: 70rpx
|
font-size: 28rpx;
|
||||||
height: 8rpx
|
color: #B5B5B5;
|
||||||
background: linear-gradient(90deg, #FFAD58 0%, #FF7A5B 100%)
|
}
|
||||||
border-radius: 4rpx
|
}
|
||||||
.title-total
|
}
|
||||||
font-size: 24rpx
|
}
|
||||||
color: #999999
|
.main-scroll {
|
||||||
.total-num
|
width: 100%;
|
||||||
color: #3088FF
|
height: 100%;
|
||||||
margin-left: 4rpx
|
.cards{
|
||||||
margin-right: 4rpx
|
width: 100%;
|
||||||
font-weight: bold
|
min-height: 260rpx;
|
||||||
font-size: 26rpx
|
height: auto;
|
||||||
|
background: linear-gradient(0deg, #E3EFFF 0%, #FBFDFF 100%);
|
||||||
.label
|
// box-shadow: 0px 0px 6px 0px rgba(0,71,200,0.32);
|
||||||
width: 160rpx
|
border-radius: 12rpx;
|
||||||
font-size: 28rpx
|
border: 2px solid #EDF5FF;
|
||||||
color: #404040
|
margin-bottom: 30rpx;
|
||||||
|
padding: 30rpx 40rpx 0;
|
||||||
.input,
|
box-sizing: border-box
|
||||||
.picker
|
.cardHead{
|
||||||
flex: 1
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
.picker-value
|
justify-content: space-between;
|
||||||
color: #666
|
.cardHeadLeft{
|
||||||
.list-box
|
display: flex;
|
||||||
margin-top: 40rpx
|
align-items: center
|
||||||
|
width: 70%;
|
||||||
.form-container
|
.cardTitle{
|
||||||
margin-top: 30rpx
|
font-weight: bold;
|
||||||
:deep(.uni-forms-item__label)
|
font-size: 28rpx;
|
||||||
width: 194rpx !important
|
color: #0069CB;
|
||||||
font-size: 28rpx;
|
max-width: 100%;
|
||||||
color: #404040;
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
.button-group {
|
white-space: nowrap;
|
||||||
display: flex;
|
}
|
||||||
justify-content: space-between;
|
.titleType{
|
||||||
padding: 40rpx 20rpx 20rpx;
|
border-radius: 4px;
|
||||||
|
font-size: 22rpx;
|
||||||
|
color: #157EFF;
|
||||||
|
width: 100rpx;
|
||||||
|
height: 38rpx;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 38rpx;
|
||||||
|
margin-left: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
.heng{
|
||||||
|
width: 30%;
|
||||||
|
height: 4rpx;
|
||||||
|
background: linear-gradient(88deg, #015EEA 0%, #00C0FA 100%);
|
||||||
|
margin: 10rpx 0 20rpx;
|
||||||
|
}
|
||||||
|
.cardCon{
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
.conten{
|
||||||
|
width: 100%;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #666666;
|
||||||
|
display: flex;
|
||||||
|
align-items: center
|
||||||
|
margin-bottom: 10rpx;
|
||||||
|
}
|
||||||
|
.status-tags{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.flooter{
|
||||||
|
border-top: 1px solid #ccc;
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
align-items: center;
|
||||||
|
view{
|
||||||
|
font-size: 28rpx;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
color: #2175F3;
|
||||||
|
padding-top: 14rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.cards2{
|
||||||
|
position: fixed;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100vh;
|
||||||
|
background-color: rgba(0,0,0,0.5);
|
||||||
|
z-index: 10000;
|
||||||
|
padding: 100rpx 50rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
.cardCon{
|
||||||
|
height: 70%;
|
||||||
|
background-color: #fff;
|
||||||
|
padding: 20rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
.cardHead{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
font-size: 30rpx;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.titleType{
|
||||||
|
display: inline-block
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: 22rpx;
|
||||||
|
color: #157EFF;
|
||||||
|
width: 100rpx;
|
||||||
|
height: 38rpx;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 38rpx;
|
||||||
|
margin-left: 10rpx;
|
||||||
|
}
|
||||||
|
.primary{
|
||||||
|
border: 1px solid #157EFF!important;
|
||||||
|
color: #157EFF!important
|
||||||
|
}
|
||||||
|
.success{
|
||||||
|
border: 1px solid #05A636!important;
|
||||||
|
color: #05A636!important
|
||||||
|
}
|
||||||
|
.info{
|
||||||
|
border: 1px solid #898989!important;
|
||||||
|
color: #898989!important
|
||||||
|
}
|
||||||
|
.tertiary{
|
||||||
|
border: 1px solid #E6A340!important;
|
||||||
|
color: #E6A340!important
|
||||||
|
}
|
||||||
|
.primary2{
|
||||||
|
border: 1px solid #F56C6C!important;
|
||||||
|
color: #F56C6C!important
|
||||||
|
}
|
||||||
|
.rightBtn{
|
||||||
|
width: 140rpx;
|
||||||
|
height: 44rpx;
|
||||||
|
line-height: 44rpx;
|
||||||
|
background: linear-gradient(90deg, #00C0FA 0%, #1271FF 100%);
|
||||||
|
border-radius: 4px;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 24rpx;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.detailTitle{
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-weight: 600;
|
||||||
|
margin: 30rpx 0;
|
||||||
|
}
|
||||||
|
.detailCon{
|
||||||
|
font-size: 28rpx;
|
||||||
|
line-height: 40rpx;
|
||||||
|
}
|
||||||
|
.exam-info {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-bottom: 35rpx;
|
||||||
|
margin-top: 20rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn {
|
.info-item {
|
||||||
width: 45%;
|
flex: 1;
|
||||||
height: 80rpx;
|
text-align: center;
|
||||||
font-size: 30rpx;
|
|
||||||
border-radius: 8rpx;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.reset-btn {
|
.info-value {
|
||||||
background-color: #D8E9FF;
|
font-family: 'D-DIN-Medium';
|
||||||
color: #1176FF;
|
font-size: 26rpx;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #409EFF;
|
||||||
|
margin-bottom: 8rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.submit-btn {
|
.info-label {
|
||||||
background-color: #368BFF;
|
font-size: 26rpx;
|
||||||
color: white;
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info-divider {
|
||||||
|
width: 2px;
|
||||||
|
background-color: #C3E1FF;
|
||||||
}
|
}
|
||||||
:deep(.uni-steps__column-circle )
|
|
||||||
width: 24rpx !important
|
|
||||||
height: 24rpx !important
|
|
||||||
background: radial-gradient(circle,
|
|
||||||
#00C0FA 0%,
|
|
||||||
#015EEA 50%,
|
|
||||||
#FFFFFF 51%,
|
|
||||||
#FFFFFF 100%) !important
|
|
||||||
border-radius: 50%
|
|
||||||
border: 2rpx solid #015EEA
|
|
||||||
:deep(.uni-steps__column-title)
|
|
||||||
font-size: 28rpx !important
|
|
||||||
color: #006CFF !important
|
|
||||||
margin-bottom: 24rpx
|
|
||||||
:deep(.uni-steps__column-desc)
|
|
||||||
font-size: 28rpx
|
|
||||||
color: #898989 !important
|
|
||||||
line-height: 1.5
|
|
||||||
:deep(.uni-steps__column-text )
|
|
||||||
padding: 16rpx 0 !important
|
|
||||||
border: none
|
|
||||||
:deep(.uni-steps__column-line)
|
|
||||||
background-color: #368BFF !important
|
|
||||||
:deep(.uni-steps__column-line--before)
|
|
||||||
background-color:rgba(0,0,0,0) !important
|
|
||||||
:deep(.uni-date-x)
|
|
||||||
background: rgba(0,0,0,0) !important
|
|
||||||
:deep(.uni-stat-box)
|
|
||||||
background: rgba(0,0,0,0) !important
|
|
||||||
:deep(.uni-easyinput__content)
|
|
||||||
background: rgba(0,0,0,0) !important
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
256
packageB/institution/evaluationAgencyDetail.vue
Normal file
256
packageB/institution/evaluationAgencyDetail.vue
Normal file
@@ -0,0 +1,256 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-box">
|
||||||
|
<div class="con-box">
|
||||||
|
<div class="cards">
|
||||||
|
<div class="cardHead">
|
||||||
|
<div class="cardHeadLeft">
|
||||||
|
<div class="cardTitle">{{organ.organName}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="rightBtn" @click="handleOperation()"></div>
|
||||||
|
</div>
|
||||||
|
<div class="heng"></div>
|
||||||
|
<div class="cardCon">
|
||||||
|
<div class="conten">机构联系人:{{organ.contactName}}</div>
|
||||||
|
<div class="conten">联系方式:{{organ.contactPhone}}</div>
|
||||||
|
<div class="conten">机构地址:{{organ.address}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="width: 100%;margin-bottom: 40rpx;">
|
||||||
|
<div class="title">
|
||||||
|
<div></div>
|
||||||
|
<div>评价流程说明</div>
|
||||||
|
</div>
|
||||||
|
<div class="kcCon">
|
||||||
|
<div class="kcIntroduction" v-if="organ.processDescription">{{organ.processDescription}}</div>
|
||||||
|
<div v-else style="text-align: center;line-height: 100rpx;">暂无数据</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="width: 100%;margin-bottom: 40rpx;">
|
||||||
|
<div class="title">
|
||||||
|
<div></div>
|
||||||
|
<div>评价项目</div>
|
||||||
|
</div>
|
||||||
|
<div class="kcCon">
|
||||||
|
<div class="kcIntroduction" v-if="organ.organContent">{{organ.organContent}}</div>
|
||||||
|
<div v-else style="text-align: center;line-height: 100rpx;">暂无数据</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="width: 100%;margin-bottom: 30rpx;">
|
||||||
|
<div class="title">
|
||||||
|
<div></div>
|
||||||
|
<div>资质证书</div>
|
||||||
|
</div>
|
||||||
|
<div class="kcCon">
|
||||||
|
<div v-for="(item, index) in certs":key = "index" style="width: 100%;">
|
||||||
|
<div v-for="(url, index2) in item" :key = "index2" style="width: 100%;">
|
||||||
|
<image :src="url" mode="" style="width: 100%;"></image>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-if="certs.length==0" style="text-align: center;line-height: 100rpx;">暂无数据</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { inject, ref, reactive } from 'vue';
|
||||||
|
import { onLoad, onShow } from '@dcloudio/uni-app';
|
||||||
|
const { $api, navTo, navBack,urls } = inject('globalFunction');
|
||||||
|
import config from "@/config.js"
|
||||||
|
const organ = ref({});
|
||||||
|
const courses = ref([]);
|
||||||
|
const certs = ref([]);
|
||||||
|
const certs2 = ref([]);
|
||||||
|
const teams=ref([])
|
||||||
|
const certIndex=ref(1)
|
||||||
|
const organId=ref('')
|
||||||
|
const Authorization=ref('')
|
||||||
|
onLoad((options) => {
|
||||||
|
organId.value=options.organId
|
||||||
|
});
|
||||||
|
onShow(()=>{
|
||||||
|
Authorization.value=uni.getStorageSync('Padmin-Token')||''
|
||||||
|
let params={
|
||||||
|
organId:organId.value
|
||||||
|
}
|
||||||
|
$api.myRequest('/train/public/rate/organ/model', params).then((resData) => {
|
||||||
|
if(resData.code==200){
|
||||||
|
organ.value = (resData.data ? resData.data :{});
|
||||||
|
certs2.value = (resData ? JSON.parse(resData.data.zhengshu):[]);
|
||||||
|
for(var i =0;i<certs2.value.length;i++){
|
||||||
|
certs2.value[i].url =config.LCBaseUrl + "/file/minio" + certs2.value[i].url;
|
||||||
|
}
|
||||||
|
var certsArr = [];var flag = 0;
|
||||||
|
for(var i =0;i<certs2.value.length;i++){
|
||||||
|
flag ++
|
||||||
|
certsArr.push(certs2.value[i])
|
||||||
|
if(flag == 3){
|
||||||
|
var arrs = [];
|
||||||
|
for(var j =0;j<3;j++){
|
||||||
|
arrs.push(certsArr[j].url)
|
||||||
|
}
|
||||||
|
certs.value.push(arrs);
|
||||||
|
certsArr = [];
|
||||||
|
flag = 0;
|
||||||
|
}else{
|
||||||
|
if(i == certs2.value.length -1){
|
||||||
|
var arrs = [];
|
||||||
|
for(var j =0;j<certsArr.length;j++){
|
||||||
|
arrs.push(certsArr[j].url)
|
||||||
|
}
|
||||||
|
certs.value.push(arrs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
})
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="stylus" scoped>
|
||||||
|
.app-box{
|
||||||
|
width: 100%;
|
||||||
|
height: 100vh;
|
||||||
|
position: relative;
|
||||||
|
.con-box{
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
left: 0;
|
||||||
|
top:0;
|
||||||
|
z-index: 10;
|
||||||
|
padding: 20rpx 28rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
overflow: hidden;
|
||||||
|
.cards{
|
||||||
|
width: 100%;
|
||||||
|
min-height: 260rpx;
|
||||||
|
height: auto;
|
||||||
|
background: linear-gradient(0deg, #D4E3FE 0%, #EBF1FF 100%);
|
||||||
|
border-radius: 12rpx;
|
||||||
|
border: 2px solid #EDF5FF;
|
||||||
|
margin-bottom: 40rpx;
|
||||||
|
padding: 20rpx 30rpx 0;
|
||||||
|
box-sizing: border-box
|
||||||
|
.cardHead{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
.cardHeadLeft{
|
||||||
|
display: flex;
|
||||||
|
align-items: center
|
||||||
|
width: 100%;
|
||||||
|
.cardTitle{
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #0069CB;
|
||||||
|
max-width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.titleType{
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: 22rpx;
|
||||||
|
color: #157EFF;
|
||||||
|
width: 100rpx;
|
||||||
|
height: 38rpx;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 38rpx;
|
||||||
|
margin-left: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
.heng{
|
||||||
|
width: 30%;
|
||||||
|
height: 4rpx;
|
||||||
|
background: linear-gradient(88deg, #015EEA 0%, #00C0FA 100%);
|
||||||
|
margin: 10rpx 0 20rpx;
|
||||||
|
}
|
||||||
|
.cardCon{
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
.conten{
|
||||||
|
width: 100%;
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #666666;
|
||||||
|
display: flex;
|
||||||
|
align-items: center
|
||||||
|
margin-bottom: 10rpx;
|
||||||
|
}
|
||||||
|
.status-tags{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.flooter{
|
||||||
|
border-top: 1px solid #ccc;
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
align-items: center;
|
||||||
|
view{
|
||||||
|
font-size: 28rpx;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
color: #2175F3;
|
||||||
|
padding-top: 14rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.title{
|
||||||
|
width: 100%
|
||||||
|
display: flex
|
||||||
|
align-items: center
|
||||||
|
font-size: 32rpx
|
||||||
|
font-weight: 600
|
||||||
|
}
|
||||||
|
.title>view:first-child{
|
||||||
|
width: 10rpx;
|
||||||
|
height: 46rpx;
|
||||||
|
background-color: #FD7565;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
}
|
||||||
|
.kcCon{
|
||||||
|
margin-top: 20rpx;
|
||||||
|
width: 100%
|
||||||
|
}
|
||||||
|
.kcIntroduction{
|
||||||
|
background: rgba(20,136,245,0.1);
|
||||||
|
padding: 20rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
.faculty{
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
padding: 10rpx;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
.facultyHead{
|
||||||
|
width: 100%;
|
||||||
|
height: 80rpx;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 30rpx;
|
||||||
|
background: linear-gradient(88deg, #3E8BFF 0%, #0DB5FB 100%);
|
||||||
|
display: flex;
|
||||||
|
align-items: center
|
||||||
|
padding: 0 20rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.facultyCon{
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #666666;
|
||||||
|
padding: 20rpx 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -432,6 +432,12 @@
|
|||||||
"navigationBarTitleText": "评价机构信息"
|
"navigationBarTitleText": "评价机构信息"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "institution/evaluationAgencyDetail",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "评价机构信息详情"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "institution/trainingInstitution",
|
"path": "institution/trainingInstitution",
|
||||||
"style": {
|
"style": {
|
||||||
|
|||||||
Reference in New Issue
Block a user