Browse Source

增加请求配置

admin_version1.0_2025_06_26
zq 4 weeks ago
parent
commit
d0f1eedb78
  1. 1
      .env.development
  2. 106
      src/components/GlobalLoading1.vue
  3. 6
      src/components/GuipRadio.vue
  4. 4
      src/style/theme/common.scss
  5. 3
      src/utils/request.js
  6. 8
      src/views/DoctorInformation.vue
  7. 192
      src/views/HomeView.vue
  8. 60
      src/views/HosInformation.vue
  9. 11
      vue.config.js

1
.env.development

@ -0,0 +1 @@
VUE_APP_BASE_API=/api

106
src/components/GlobalLoading1.vue

@ -1,67 +1,69 @@
<template>
<div class="content-loading-overlay" v-if="isLoading">
<div class="loading-content">
<div ref="animationContainer" class="animation-container"></div>
<div>
<div class="content-loading-overlay" v-show="isLoading">
<div class="loading-content">
<div ref="animationContainer" class="animation-container"></div>
</div>
</div>
<div v-show="!isLoading">
<slot></slot>
</div>
</div>
<div v-else style="height: 100%;">
<slot></slot>
</div>
</template>
<script>
import lottie from 'lottie-web'
import { mapState } from 'vuex'
import defaultAnimation from '@/assets/loadingAni.json' // JSON
import defaultAnimation from '@/assets/loadingAni.json'
export default {
name: 'Loading',
data() {
return {
anim: null
}
},
computed: {
...mapState(['isLoading', 'loadingText'])
},
watch: {
isLoading(newVal) {
if (newVal) {
this.$nextTick(()=>{
this.playAnimation()
})
} else {
this.stopAnimation()
}
}
},
mounted() {
if (this.isLoading) {
this.playAnimation()
name: 'Loading',
data() {
return {
anim: null
}
},
computed: {
...mapState(['isLoading', 'loadingText'])
},
watch: {
isLoading(newVal) {
this.$nextTick(() => {
if (newVal) {
this.playAnimation()
} else {
this.stopAnimation()
}
})
}
},
methods: {
playAnimation() {
//
if (this.anim) {
this.anim.destroy()
this.anim = null
}
console.log('执行动画')
this.anim = lottie.loadAnimation({
container: this.$refs.animationContainer,
renderer: 'svg',
loop: true,
autoplay: true,
animationData: defaultAnimation
})
},
beforeDestroy() {
this.stopAnimation()
},
methods: {
playAnimation() {
this.anim = lottie.loadAnimation({
container: this.$refs.animationContainer,
renderer: 'svg',
loop: true,
autoplay: true,
animationData: defaultAnimation // JSON
})
if (this.anim) {
this.anim.play()
}
},
stopAnimation() {
if (this.anim) {
this.anim.stop()
}
}
stopAnimation() {
if (this.anim) {
this.anim.stop()
}
}
},
beforeDestroy() {
if (this.anim) {
this.anim.destroy() //
}
}
}
</script>

6
src/components/GuipRadio.vue

@ -1,7 +1,7 @@
<template>
<el-form-item
:class="[{'column':column},'form-item']"
:label="label" :prop="prop" :rules="rules">
:label="label" :prop="prop" :rules="rules" :required="required">
<el-radio-group
v-model="selectedValue"
v-bind="$attrs"
@ -26,6 +26,10 @@
props: {
//
column:{
type:String,
default:''
},
required:{
type:Boolean,
default:false
},

4
src/style/theme/common.scss

@ -113,10 +113,10 @@ body {
flex-direction: column;
}
.mb24{
margin-bottom: 24px;
margin-bottom: 24px !important;
}
.mb12{
margin-bottom: 12px;
margin-bottom: 12px !important;
}
.mt24{
margin-top: 24px;

3
src/utils/request.js

@ -1,9 +1,10 @@
// src/utils/request.js
import axios from "axios";
const baseURL = process.env.VUE_APP_BASE_API;
// 创建 axios 实例
const service = axios.create({
baseURL: process.env.VUE_APP_BASE_API, // 从环境变量中读取 API 基础地址
baseURL:baseURL, // 从环境变量中读取 API 基础地址
timeout: 60000, // 请求超时时间
headers: {
'Content-Type': 'application/x-www-form-urlencoded'

8
src/views/DoctorInformation.vue

@ -41,7 +41,7 @@
<div class="flex-left">
<GuipInput column="column" v-model="form.description" prop="description" label="一句话介绍"
width="100%" height="56px" placeholder="请输入描述内容" maxlength="14" show-word-limit />
<GuipFormItem column="column" class="" label="详细介绍">
<GuipFormItem column="column" class="" label="详细介绍">
<GuipTextarea slot="formDom" v-model="form.detailDesc" prop="description" width="100%"
height="86px" autosize placeholder="请输入描述内容" maxlength="不限" show-word-limit />
</GuipFormItem>
@ -221,9 +221,9 @@ export default {
this.$refs[form].validate((valid) => {
if (valid) {
this.$http('POST', '/supernew/ajax_get_type_batch_list', {
name:form.name,
idCard:form.idCard,
phone:form.phone
name: form.name,
idCard: form.idCard,
phone: form.phone
}).then(response => {
this.projectTagData = response.data

192
src/views/HomeView.vue

@ -120,85 +120,85 @@ export default {
doctorName:'',
isIndeterminate: false,
doctorList: [
{
id: 10,
checked: false,
name: '一二',
idcard: '532524198711223615',
desc: '就哈哈哈哈,嗷跳舞',
detail: '拉开是金德拉克撒娇了大数据连接拉萨。。。',
tag: '专业',
phone: '17785748373',
avatar: 'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',
status: true,
list: [
{
hos: [
'第三人民医院 针灸科',
'第一人民医院 中医科',
],
time: '2054 - 10 - 03',
status: true,
group: '2',
setMenu: '4',
nums: '88',
checked: false,
},
]
},
{
id: 10,
checked: false,
name: '一二',
idcard: '532524198711223615',
desc: '就哈哈哈哈,嗷跳舞',
detail: '拉开是金德拉克撒娇了大数据连接拉萨。。。',
tag: '专业',
phone: '17785748373',
avatar: 'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',
status: false,
list: [
{
hos: [
'第三人民医院 针灸科',
'第一人民医院 中医科',
],
time: '2054 - 10 - 03',
status: true,
group: '2',
setMenu: '4',
nums: '88',
checked: false,
},
{
hos: [
'第三人民医院 针灸科',
'第一人民医院 中医科',
],
time: '2054 - 10 - 03',
status: true,
group: '2',
setMenu: '4',
nums: '88',
checked: false,
},
]
},
{
id: 10,
checked: false,
name: '一二',
idcard: '532524198711223615',
desc: '就哈哈哈哈,嗷跳舞',
detail: '拉开是金德拉克撒娇了大数据连接拉萨。。。',
tag: '专业',
phone: '17785748373',
avatar: 'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',
status: false,
list: [
// {
// id: 10,
// checked: false,
// name: '',
// idcard: '532524198711223615',
// desc: '',
// detail: '',
// tag: '',
// phone: '17785748373',
// avatar: 'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',
// status: true,
// list: [
// {
// hos: [
// ' ',
// ' ',
// ],
// time: '2054 - 10 - 03',
// status: true,
// group: '2',
// setMenu: '4',
// nums: '88',
// checked: false,
// },
// ]
// },
// {
// id: 10,
// checked: false,
// name: '',
// idcard: '532524198711223615',
// desc: '',
// detail: '',
// tag: '',
// phone: '17785748373',
// avatar: 'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',
// status: false,
// list: [
// {
// hos: [
// ' ',
// ' ',
// ],
// time: '2054 - 10 - 03',
// status: true,
// group: '2',
// setMenu: '4',
// nums: '88',
// checked: false,
// },
// {
// hos: [
// ' ',
// ' ',
// ],
// time: '2054 - 10 - 03',
// status: true,
// group: '2',
// setMenu: '4',
// nums: '88',
// checked: false,
// },
// ]
// },
// {
// id: 10,
// checked: false,
// name: '',
// idcard: '532524198711223615',
// desc: '',
// detail: '',
// tag: '',
// phone: '17785748373',
// avatar: 'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',
// status: false,
// list: [
]
},
// ]
// },
],
allChecked: false,
}
@ -216,19 +216,30 @@ export default {
store.commit('SET_PAGENAME', '医生管理'); //
this.calculateTotalNum()
},
mounted(){
this.getInitData()
},
render() {
console.log("组件重新渲染");
return 'a';
},
computed: {
},
methods: {
//
getInitData(){
this.$store.dispatch('showLoading')
this.$http('POST', '/supernew/ajax_get_type_batch_list', {
doctorName:this.doctorName
this.$http('POST', '/api/admin/doctor_depart_list', {
// doctorName:this.doctorName
},{
headers:{
'AUTHADMIN' :'b10346e6-5003-4644-8e48-e14f49874338'
}
}).then(response => {
if (response.code == 0) {
this.$store.dispatch('hideLoading')
this.doctorList = response.data
}
this.$store.dispatch('hideLoading')
}).catch(error => {
console.error(error, 'error')
@ -315,28 +326,11 @@ export default {
row.status = !row.status;
this.$set(this.doctorList, row)
},
// handleCheckAllChange(val) {
// this.checkedCities = val ? cityOptions : [];
// this.isIndeterminate = false;
// },
// handleCheckAllChange(val) {
// if (val == 'all') {
// console.log(this.allChecked, '-----allchecked');
// var i = 0;
// while (i < this.doctorList.length) {
// this.doctorList[i].checked = this.allChecked;
// this.getPopoverRef(i).$refs.guiptable.toggleAllSelection();
// i++
// }
// } else {
// this.getPopoverRef(val).$refs.guiptable.toggleAllSelection();
// }
// },
batchOperate(type) {
// this.tableSelections
if (type == '1') {
//
this.getInitData()
} else {
//

60
src/views/HosInformation.vue

@ -66,25 +66,36 @@
<GroupFormBtns @cancel="cancelClick" @confirm="submitForm('siteForm')" />
</div>
<div class="siteMessage flex-common" id="siteMessage2">
<p class="littleTitle mb32">出诊时间</p>
<el-form :model="siteForm1" :rules="siteFormrules1" ref="siteForm1">
<p class="littleTitle mb32">初诊审批</p>
<el-form :model="siteForm2" :rules="siteFormrules2" ref="siteForm2">
<div class="flex-wrap">
<div class="flex-left">
<GuipRadio v-model="siteForm2.isApprove" class="mb12" column="column" :options="groupOptions"
label="初诊是否审批" required prop="isApprove" @change="radioChange" />
<GuipInput ref="GuipInput" column="column" label="审批人电话" desc="审批人电话、微信,至少填写一项"
v-model="siteForm2.phone" prop="phone" placeholder="请输入" />
</div>
<div class="flex-line"></div>
<div class="flex-right">
<GuipFormItem column="column" label="每周出诊安排" :required="true">
<div class="flex weekPlan" slot="formDom">
<GuipSelect v-for="[key] in Object.entries(weekPlan)" :key="key" v-model="weekPlan[key]"
:options="options_weekPlan" @change="weekChange()" :label="key" placeholder="休息">
</GuipSelect>
<GuipFormItem column="column" label="审批人微信" >
<span class="desc" slot="formRight">审批人电话微信至少填写一项</span>
<div class="qqCode-wrap right" slot="formDom">
<el-upload class="avatar-uploader upload-demo" accept=".jpg,.png" :multiple="false"
action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview" :on-remove="handleRemove"
:on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload">
<hover-button button-text="微信二维码"
:default-icon="require('../assets/upLoad_grey.svg')"
:hover-icon="require('../assets/upLoad_active.svg')"
default-text-color="#23242B" hover-text-color="#006AFF" @click="btnClick" />
<div slot="tip" class="el-upload__tip desc">审批人微信二维码大小2M以内</div>
</el-upload>
</div>
</GuipFormItem>
</div>
</div>
</el-form>
<GroupFormBtns @cancel="cancelClick" @confirm="submitForm('siteForm1')" />
<GroupFormBtns @cancel="cancelClick" @confirm="submitForm('siteForm2')" />
</div>
<div class="siteMessage flex-common" id="siteMessage3">
<p class="littleTitle mb32">出诊时间</p>
@ -230,8 +241,8 @@
<div class="selectAllTable-wrap flex-between mt32 mb32">
<div class="left flex">
<div class="checkboxAll">
<el-checkbox @change="handleSelectAllChange1" v-model="selectAll"
:indeterminate="isIndeterminate">全选</el-checkbox>
<el-checkbox @change="handleSelectAllChange1" v-model="selectAll1"
:indeterminate="isIndeterminate1">全选</el-checkbox>
</div>
<span class="totalCount">{{ courseList.length }}已选{{ selectedCount }}</span>
<GuipButton type="ignore" :btnstyle="{ width: '99px', height: '32px', margin: '0 26px' }"
@ -297,6 +308,9 @@ import GuipSelect from '@/components/GuipSelect.vue';
import GuipSwitch from '@/components/GuipSwitch.vue';
import GuipTable from '@/components/GuipTable.vue';
import GuipDialog from '@/components/GuipDialog.vue';
import GuipRadio from '@/components/GuipRadio.vue';
import HoverButton from '@/components/HoverButton.vue';
export default {
//
name: '',
@ -307,20 +321,22 @@ export default {
BatchProject,
GuipButton,
GuipDialog,
GuipRadio,
GuipInput,
GuipTable,
GuipSwitch,
GuipSelect,
GuipTextarea,
GroupFormBtns
GroupFormBtns,
HoverButton
},
data() {
return {
doctorId:'',
doctorId: '',
dialogType: '1',
dialogVisible: false,
dialogVisible1: true,
dialogVisible1: false,
form1: {
projectName: ''
},
@ -338,6 +354,10 @@ export default {
isIndeterminate1: false,
projectSearchId: '',
projectSearchName: '',
groupOptions: [
{ label: '需审批', value: '1' },
{ label: '不需审批', value: '2' },
],
projectList: [
{
name: '针灸',
@ -500,8 +520,13 @@ export default {
domain_source: '平台免费域名',
},
siteForm2: {
zhifubao_pay: '',
weixin_pay: '',
isApprove: '',
phone: ''
},
siteFormrules2: {
isApprove: [
{ required: true, message: '请选择初诊审批设置', trigger: ['change','blur' ]}
]
},
siteFormrules1: {
domain_source: [
@ -755,6 +780,9 @@ export default {
domain_radioChange(type) {
console.log(type, '--');
},
radioChange(data) {
console.log(data, 'radio--data');
},
onSwitchChange(data) {
console.log(data, '---');
},

11
vue.config.js

@ -4,13 +4,12 @@ module.exports = {
// publicPath: '/new/',
devServer: {
proxy: {
'/supernew': {
target: 'http://adminnew.pengda.checkcopy.com/',
changeOrigin: true,
},
'/agentnew': {
target: 'http://adminnew.pengda.checkcopy.com/',
'/api': {
target: 'http://jasonyizherenxin.checkcopy.com',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
}
},

Loading…
Cancel
Save