Browse Source

新增项目弹框、新增套餐页面

admin_version1.0_2025_06_26
zq 1 month ago
parent
commit
5656e371be
  1. 1
      src/assets/info_filled.svg
  2. 145
      src/components/BatchProject.vue
  3. 92
      src/components/GuipInput.vue
  4. 6
      src/components/GuipRadio.vue
  5. 3
      src/components/GuipSelect.vue
  6. 4
      src/router/index.js
  7. 9
      src/style/theme/common.scss
  8. 418
      src/views/AddNewTreatment.vue
  9. 85
      src/views/DoctorInformation.vue
  10. 52
      src/views/HomeView.vue
  11. 179
      src/views/HosInformation.vue
  12. 22
      src/views/elementGroups.vue

1
src/assets/info_filled.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16" height="16" viewBox="0 0 16 16"><defs><clipPath id="master_svg0_140_48451"><rect x="0" y="0" width="16" height="16" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_140_48451)"><g><path d="M8,1C9.97933,1.052,11.6278,1.7368329999999998,12.9455,3.0545C14.2632,4.372170000000001,14.948,6.02067,15,8C14.948,9.97933,14.2632,11.6278,12.9455,12.9455C11.6278,14.2632,9.97933,14.948,8,15C6.02067,14.948,4.372170000000001,14.2632,3.0545,12.9455C1.7368329999999998,11.6278,1.052,9.97933,1,8C1.052,6.02067,1.7368329999999998,4.372170000000001,3.0545,3.0545C4.372170000000001,1.7368329999999998,6.02067,1.052,8,1C8,1,8,1,8,1C8,1,8,1,8,1ZM9.047,5.297C9.318,5.297,9.542,5.21633,9.719,5.055C9.896,4.89367,9.9845,4.6775,9.9845,4.406499999999999C9.9845,4.1355,9.896,3.91933,9.719,3.758C9.542,3.59667,9.32067,3.516,9.055,3.516C8.78933,3.516,8.568,3.59667,8.391,3.758C8.214,3.91933,8.125499999999999,4.1355,8.125499999999999,4.406499999999999C8.125499999999999,4.6775,8.214,4.89367,8.391,5.055C8.568,5.21633,8.78683,5.297,9.0475,5.297C9.0475,5.297,9.047,5.297,9.047,5.297C9.047,5.297,9.047,5.297,9.047,5.297ZM9.2345,10.922C9.2345,10.85933,9.23967,10.776,9.25,10.672C9.26033,10.568,9.26033,10.469,9.25,10.375C9.25,10.375,8.422,11.328,8.422,11.328C8.33867,11.4217,8.25267,11.4947,8.164,11.547C8.075330000000001,11.5993,7.99983,11.615,7.9375,11.594C7.84383,11.5523,7.80217,11.4793,7.8125,11.375C7.8125,11.375,9.1875,7.047,9.1875,7.047C9.2395,6.75533,9.19267,6.50533,9.047,6.297C8.90133,6.08867,8.667,5.96367,8.344000000000001,5.922C7.97933,5.93233,7.58083,6.086,7.1485,6.383C6.71617,6.68,6.3385,7.05767,6.0155,7.516C6.0155,7.516,6.0155,7.7505,6.0155,7.7505C6.00517,7.85483,6.00517,7.95383,6.0155,8.0475C6.0155,8.0475,6.8435,7.0945,6.8435,7.0945C6.92683,7.00083,7.01283,6.92783,7.1015,6.8755C7.19017,6.82317,7.2605,6.8075,7.3125,6.8285C7.41683,6.8805,7.45333,6.96383,7.422,7.0785C7.422,7.0785,6.0625,11.391,6.0625,11.391C5.9895,11.6513,6.026,11.8832,6.172,12.0865C6.318,12.2898,6.57317,12.4278,6.9375,12.5005C7.4585,12.4902,7.896,12.3392,8.25,12.0475C8.604,11.7558,8.93217,11.3808,9.2345,10.9225C9.2345,10.9225,9.2345,10.922,9.2345,10.922C9.2345,10.922,9.2345,10.922,9.2345,10.922Z" fill="#FB832D" fill-opacity="1"/></g></g></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

145
src/components/BatchProject.vue

@ -0,0 +1,145 @@
<template>
<div class="batch-wrap">
<p class="flex siteMessage5_desc mb24"> <img src="@/assets/info_filled.svg" alt="">
录入格式1.请按照 项目名称 空格 单次价格 格式输入2.每行一条数据 回车 确认</p>
<div class="content-wrap">
<el-form :model="form" :rules="formRules">
<GuipRadio v-model="groupType" class="radio-form" :options="groupOptions" label="分组形式" prop="language" @change="radioChange" />
<GuipFormItem class="mb24 mt24" v-if="groupType==1" label="已有分组">
<div class="tabProject flex" slot="formDom" >
<div :class="['tab-item ', projectSearchId == item.id ? 'active' : '']" @click="selectTag(item)"
v-for="(item) in projectTagData" :key="item.name">{{ item.name }}</div>
</div>
</GuipFormItem>
<GuipFormItem v-if="groupType == 2" class="mb24 mt24" label="分组名称">
<GuipInput slot="formDom" ref="GuipInput" v-model="form.name"
prop="name" placeholder="请填写新增分组名称" @change="changeName"/>
</GuipFormItem>
<GuipFormItem class=" form-special" label="录入项目">
<GuipTextarea slot="formDom" v-model="form.notice" prop="description" width="100%" height="262px"
autosize :placeholder="'例如:\n推拿 168\n针灸 100'" @change="getNotice"/>
</GuipFormItem>
</el-form>
</div>
</div>
</template>
<script>
import GuipRadio from '@/components/GuipRadio.vue';
import GuipTextarea from '@/components/GuipTextarea.vue';
import GuipInput from '@/components/GuipInput.vue';
import GuipFormItem from '@/components/GuipFormItem.vue';
export default {
//
name: '',
props: ['projectTagData'],
components: {
GuipRadio,
GuipInput,
GuipTextarea,
GuipFormItem
},
data() {
return {
formRules: {
name: [
{ required: true, message: '请输入', trigger: 'blur' }
],
},
form:{
name:'',
},
groupType: '1',
notice:'',
projectSearchId:'',
groupOptions: [
{ label: '归入已有分组', value: '1' },
{ label: '新增分组', value: '2' }, //
{ label: '不分组', value: '3' },
],
}
},
methods: {
getNotice(e){
// \n
let flag = e.includes('\n')
console.log(JSON.stringify(e),flag,'===---');
},
changeName(e){
console.log(e,'===---');
},
radioChange(data) {
console.log(data, 'radio--data');
},
selectTag(item){
this.projectSearchId = item.id
}
},
}
</script>
<style lang="scss" scoped>
.batch-wrap {
.siteMessage5_desc {
border-radius: 4px;
background: #F2F7FF;
border: 1px solid #BFDAFF;
padding: 8px 13px;
margin-bottom: 32px;
img {
margin-right: 8px;
}
}
.tabProject {
gap: 12px;
.tab-item {
/* 自动布局子元素 */
height: 28px;
min-width: 74px;
/* 自动布局 */
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
padding: 4px 12px;
gap: 4px;
align-self: stretch;
z-index: 2;
border-radius: 14px;
background: #FFFFFF;
box-sizing: border-box;
/* middle/middle_line_1 */
border: 1px solid #DFE2E6;
/* body/body 2_regular */
font-family: Microsoft YaHei UI;
font-size: 14px;
text-align: justify;
/* 浏览器可能不支持 */
letter-spacing: 0.08em;
/* text/text_4 */
color: #8A9099;
}
.active {
color: #006AFF;
border: none;
background: #F2F3F5;
}
}
.form-special{
align-items: flex-start;
}
::v-deep .form-item-top{
height: 38px;
}
::v-deep .form-item1{
gap: 12px;
}
.radio-form ::v-deep .el-form-item__label{
margin-right: 12px;
}
}
</style>

92
src/components/GuipInput.vue

@ -1,24 +1,12 @@
<template> <template>
<el-form-item <el-form-item :style="{ ...styleObject }" :required="required"
:style="{height:height,...styleObject}" :class="[{ 'column': column }, { 'w510': addClass == 'w510' }, { 'w388': addClass == 'w388' }, 'form-item']" :label="label"
:class="[{'column':column},{'w510':addClass=='w510'},{'w388':addClass=='w388'},'form-item']" :prop="prop" :rules="rules">
:label="label" :prop="prop" :rules="rules">
<p v-if="desc" class="desc_right">{{ desc }}</p> <p v-if="desc" class="desc_right">{{ desc }}</p>
<el-input <el-input :type="type" v-bind="$attrs" :placeholder="placeholder1" :disabled="disabled" :maxlength="maxlength1"
:type="type" :style="{ width: width, height: height }" :minLength="minLength1" :show-word-limit="showWordLimit"
v-bind="$attrs" @input="$emit('input', $event)" @keydown="handleKeydown" @change="$emit('change', $event)"
:placeholder="placeholder1" @blur="$emit('blur', inputValue)" @focus="$emit('focus', inputValue)" v-model="inputValue">
:disabled="disabled"
:maxlength="maxlength1"
:style="{width:width,height:height}"
:minLength="minLength1"
:show-word-limit="showWordLimit"
@input="$emit('input', $event)"
@keydown="handleKeydown"
@change="$emit('change', $event)"
@blur="$emit('blur', inputValue)"
@focus="$emit('focus', inputValue)"
v-model="inputValue">
<!-- 自定义前面小图标 --> <!-- 自定义前面小图标 -->
<template v-slot:prepend> <template v-slot:prepend>
<slot name="prependshow"></slot> <slot name="prependshow"></slot>
@ -43,61 +31,53 @@
<span class="unit" v-if="unit">{{ unit }}</span> <span class="unit" v-if="unit">{{ unit }}</span>
</el-form-item> </el-form-item>
</template> </template>
<script> <script>
export default { export default {
name: 'GuipInput', name: 'GuipInput',
props:['value','styleObject','disabled','defaultValue','placeholder', props: ['value', 'styleObject', 'disabled', 'defaultValue', 'placeholder','required',
'maxlength','minLength','clear','width','height','showWordLimit', 'maxlength', 'minLength', 'clear', 'width', 'height', 'showWordLimit',
'label','type','prop','rules','column','addClass','desc','unit'], 'label', 'type', 'prop', 'rules', 'column', 'addClass', 'desc', 'unit'],
data() { data() {
return { return {
inputValue: '', inputValue: this.value || this.defaultValue,
maxlength1: '', maxlength1: '',
minLength1: 0, minLength1: 0,
style:{ style: {
width:'510px', width: '510px',
height:'38px' height: '38px'
}, },
placeholder1:'' placeholder1: ''
} }
}, },
watch: { // value prop 便 inputValue watch: { // value prop 便 inputValue
// defaultValue(newVal) { value(newVal) {
// console.log(newVal,'newVal');
// this.inputValue = newVal;
// },
value(newVal){
this.inputValue = newVal; this.inputValue = newVal;
} }
}, },
created(){ created() {
//
if(this.defaultValue != null){
this.inputValue = this.defaultValue;
}
// //
if(this.placeholder){ if (this.placeholder) {
this.placeholder1 = this.placeholder; this.placeholder1 = this.placeholder;
} }
// //
if(this.maxlength){ if (this.maxlength) {
this.maxlength1 = this.maxlength; this.maxlength1 = this.maxlength;
} }
// //
if(this.minLength){ if (this.minLength) {
this.minLength1 = this.minLength; this.minLength1 = this.minLength;
} }
}, },
mounted(){ mounted() {
this.$nextTick(()=>{ this.$nextTick(() => {
let els = document.querySelectorAll('.el-input'); let els = document.querySelectorAll('.el-input');
els.forEach(item=>{ els.forEach(item => {
item.onmouseover= function(){ item.onmouseover = function () {
item.classList.add("hoverclass") item.classList.add("hoverclass")
} }
item.onmouseout= function(){ item.onmouseout = function () {
item.classList.remove("hoverclass") item.classList.remove("hoverclass")
} }
// item.addEventListener('mouseover',function(){ // item.addEventListener('mouseover',function(){
@ -125,7 +105,7 @@
// } // }
}) })
}, },
methods:{ methods: {
// input // input
// changeInput(event){ // changeInput(event){
// this.$emit('input', event); // this.$emit('input', event);
@ -141,14 +121,16 @@
// } // }
}, },
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.unit { .unit {
position: absolute; position: absolute;
right: 12px; /* 根据需要调整位置 */ right: 12px;
/* 根据需要调整位置 */
top: 50%; top: 50%;
transform: translateY(-50%); transform: translateY(-50%);
pointer-events: none; /* 防止单位文本影响输入框的点击事件 */ pointer-events: none;
/* 防止单位文本影响输入框的点击事件 */
} }
</style> </style>

6
src/components/GuipRadio.vue

@ -14,11 +14,7 @@
:disabled="option.disabled" :disabled="option.disabled"
> >
<!-- 默认展示和选中显示 不同文案 --> <!-- 默认展示和选中显示 不同文案 -->
{{ selectedValue === option.value ? option.selectedLabel : option.label }} {{( selectedValue === option.value ) ? (option.selectedLabel ? option.selectedLabel : option.label) :option.label }}
<!-- 自定义 选中图标 -->
<!-- <template #label>
<span><img src="../assets/radio_checked.svg" alt="custom icon" style="width: 16px; height: 16px;"> {{ text }}</span>
</template> -->
</el-radio> </el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>

3
src/components/GuipSelect.vue

@ -1,5 +1,5 @@
<template> <template>
<el-form-item :style="{ ...style, height: height, ...styleObject }" <el-form-item :style="{ ...style, height: height, ...styleObject }" :required="required"
:class="[{ 'column': column }, { 'w510': addClass == 'w510' }, { 'w388': addClass == 'w388' }, 'form-item']" :class="[{ 'column': column }, { 'w510': addClass == 'w510' }, { 'w388': addClass == 'w388' }, 'form-item']"
:label="label" :prop="prop" :rules="rules"> :label="label" :prop="prop" :rules="rules">
<p v-if="desc" class="desc_right">{{ desc }}</p> <p v-if="desc" class="desc_right">{{ desc }}</p>
@ -32,6 +32,7 @@ export default {
}, },
styleObject: Object, styleObject: Object,
disabled: Boolean, disabled: Boolean,
required: Boolean,
defaultValue: [String, Number, Array], defaultValue: [String, Number, Array],
placeholder: String, placeholder: String,
width: String, width: String,

4
src/router/index.js

@ -7,9 +7,9 @@ import HomeView from '../views/HomeView.vue';
Vue.use(VueRouter) Vue.use(VueRouter)
const whiteSlideList = [ '/ui', '/hosInformation']; //侧边导航白名单 const whiteSlideList = [ '/ui', '/hosInformation']; //侧边导航白名单
const whiteHeaderList = ['/','/doctorInformation', 'hosInformation' const whiteHeaderList = ['/','/doctorInformation', 'hosInformation','/addNewTreatment'
]; //头部导航白名单 ]; //头部导航白名单
const whiteFooterList = ['/','/doctorInformation' ,'/hosInformation' const whiteFooterList = ['/','/doctorInformation' ,'/hosInformation','/addNewTreatment'
]; //底部白名单 ]; //底部白名单
const routes = [{ const routes = [{
path: '/', path: '/',

9
src/style/theme/common.scss

@ -28,7 +28,7 @@ body {
letter-spacing: 0.08em; letter-spacing: 0.08em;
color: #1E2226; color: #1E2226;
text-align: left; text-align: left;
padding: 24px 0; // padding: 24px 0;
} }
.littleTitle{ .littleTitle{
font-family: Microsoft YaHei UI; font-family: Microsoft YaHei UI;
@ -118,6 +118,9 @@ body {
.mb12{ .mb12{
margin-bottom: 12px; margin-bottom: 12px;
} }
.mt24{
margin-top: 24px;
}
.mt12{ .mt12{
margin-top: 12px; margin-top: 12px;
} }
@ -227,7 +230,7 @@ body {
} }
.min-flex-right { .min-flex-right {
min-width: 1020px; min-width: 1020px;
max-width: 1556px; // max-width: 1556px;
width: 84.75%; width: 84.75%;
margin: 0 auto; margin: 0 auto;
.flex-common{ .flex-common{
@ -934,7 +937,7 @@ body {
// dialog--start // dialog--start
.el-dialog { .el-dialog {
min-height: 214px; min-height: 214px;
max-height: 550px; // max-height: 550px;
border-radius: 4px; border-radius: 4px;
background: #FFFFFF; background: #FFFFFF;
box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.16); box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.16);

418
src/views/AddNewTreatment.vue

@ -1,33 +1,105 @@
<template> <template>
<div class="site-setting-wrap pagePadding min-flex-right"> <div class="site-setting-wrap min-flex-right">
<div class="pagePadding">
<p class="pageTitle bold">新增套餐</p> <p class="pageTitle bold">新增套餐</p>
<div class="siteMessage flex-common" id="siteMessage2"> <div class="siteMessage flex-common" id="siteMessage2">
<p class="littleTitle mb32">套餐信息</p> <p class="littleTitle mb32">套餐信息</p>
<el-form :model="siteForm1" :rules="siteFormrules1" ref="siteForm1"> <el-form :model="siteForm" :rules="siteFormrules" ref="siteForm1">
<div class="flex-wrap"> <div class="flex-wrap">
<div class="flex-left"> <div class="flex-left">
<GuipFormItem column="column" class="mb24" label="套餐名称" :required="true"> <GuipFormItem column="column" class="mb24" label="套餐名称" :required="true">
<GuipInput slot="formDom" ref="GuipInput" column="column" v-model="numSettingForm.times" <GuipInput slot="formDom" ref="GuipInput" column="column" v-model="siteForm.name"
prop="times" placeholder="输入" /> prop="name" placeholder="输入" />
</GuipFormItem> </GuipFormItem>
</div> </div>
<div class="flex-line"></div> <div class="flex-line"></div>
<div class="flex-right"> <div class="flex-right">
<GuipFormItem column="column" class="mb24" label="套餐价格" :required="true"> <GuipFormItem column="column" class="mb24" label="套餐价格" :required="true">
<GuipInput slot="formDom" ref="GuipInput" column="column" v-model="numSettingForm.times" <GuipInput slot="formDom" ref="GuipInput" column="column" v-model="siteForm.price"
prop="times" placeholder="输入" unit="元" /> prop="price" placeholder="输入" unit="元" />
</GuipFormItem> </GuipFormItem>
</div> </div>
</div> </div>
</el-form> </el-form>
</div> </div>
<div class="siteMessage flex-common" id="siteMessage2">
<p class="littleTitle mb32">套餐项目</p>
<el-form>
<div class="flex">
<div class="checkboxAll">
<el-checkbox @change="handleSelectAllChange1" v-model="selectAll"
:indeterminate="isIndeterminate">全选</el-checkbox>
</div>
<span class="totalCount">{{ treatMentList.length }}已选{{ selectedCount }}</span>
</div>
<div class="flex-between mb32 mt32">
<div class="tabProject flex">
<div :class="['tab-item ', projectSearchId == item.id ? 'active' : '']"
v-for="item in projectTagData" :key="item.name">{{ item.name }}</div>
</div>
<div class="right flex">
<GuipFormItem label="搜索项目">
<GuipInput slot="formDom" ref="GuipInput" width="280px" v-model="projectSearchName"
placeholder="请输入" @blur="inputBlur">
<img src="@/assets/input_search_ic.svg" slot="suffix" @click="handleClear" />
</GuipInput>
</GuipFormItem>
</div>
</div>
<GuipTable :tableData="treatMentList" style="width: 100%" ref="multipleTable"
@selection-change="handleSelectionChange" :loading="loading">
<el-table-column type="selection" label="选择" width="150"></el-table-column>
<el-table-column prop="name" label="项目名称" min-width="150"></el-table-column>
<el-table-column label="次数" min-width="150px">
<template slot-scope="scope">
<GuipInput width="120px" v-model="scope.row.nums" @change="changeNums(scope.row)" />
</template>
</el-table-column>
<el-table-column prop="price" label="项目价格" min-width="150"></el-table-column>
<el-table-column prop="group" label="分类" min-width="150"></el-table-column>
</GuipTable>
<el-pagination background @size-change='handleSizeChange' @current-change='handleCurrentChange'
:current-page="currentPage" :page-size=pageSize layout="prev, pager, next,jumper"
:total="treatMentList.length">
</el-pagination>
</el-form>
</div>
</div>
<div class="register-btns">
<GuipButton type="system" :btnstyle="{ width: '144px', height: '46px' }" @click="cancelClick">取消
</GuipButton>
<GuipButton type="primary" :btnstyle="{ width: '144px', height: '46px' }" @click="confirmClick">保存套餐
</GuipButton>
</div>
<GuipDialog :dialogVisible="dialogVisible" :title="'新增套餐确认'" :show-close-button="true" width="599px"
:show-cancel-button="true" @confirm="handleConfirm" @cancel="handleCancel"
@close="handleClose" confirmText="确定新增">
<div class="flex content">
<span>套餐名称</span>
<span>{{ siteForm.name }}套餐</span>
</div>
<div class="flex content">
<span>套餐价格</span>
<span>{{ siteForm.price }}</span>
</div>
<div class="flex content">
<span>套餐项目</span>
<div class="column">
<span v-for="item in selectedRows" :key="item.id">{{ item.name }} {{ item.nums }}</span>
</div>
</div>
</GuipDialog>
</div> </div>
</template> </template>
<script> <script>
import store from '../store'; import store from '../store';
import { mapState } from 'vuex'; import { mapState } from 'vuex';
import GuipFormItem from '@/components/GuipFormItem.vue'; import GuipFormItem from '@/components/GuipFormItem.vue';
import GuipTable from '@/components/GuipTable.vue';
import GuipDialog from '@/components/GuipDialog.vue';
import GuipInput from '@/components/GuipInput.vue'; import GuipInput from '@/components/GuipInput.vue';
import GuipButton from '@/components/GuipButton.vue';
export default { export default {
// //
name: '', name: '',
@ -35,97 +107,91 @@ export default {
components: { components: {
GuipFormItem, GuipFormItem,
GuipInput, GuipInput,
GuipDialog,
GuipButton,
GuipTable
}, },
data() { data() {
return { return {
numSettingForm: { dialogVisible: true,
times: '', selectAll: false,
hours: '', selectedCount: 0,
nums: '', currentPage: 1,
days: '' pageSize: 10,
}, isIndeterminate: false,
numSettingFormRule: { projectSearchName: '',
times: [ projectSearchId: '0',
{ required: true, message: '请输入', trigger: 'blur' } loading: false,
], treatMentList: [
hours: [ {
{ required: true, message: '请输入', trigger: 'blur' } name: '针灸1',
], nums: 1,
nums: [ checked: true,
{ required: true, message: '请输入', trigger: 'blur' } group: '针灸1',
], price: 9939,
days: [ id: '11'
{ required: true, message: '请输入', trigger: 'blur' } },
], {
name: '针灸2',
nums: 1,
checked: false,
group: '针灸1',
price: 199,
id: '12'
},
{
name: '针灸1',
nums: 1,
checked: true,
group: '针灸1',
price: 9939,
id: '111'
},
{
name: '针灸2',
nums: 1,
checked: false,
group: '针灸1',
price: 199,
id: '122'
}, },
fileList: [
{ name: 'food.jpeg', url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100' }
], ],
options_payword: [{ selectedRows: [],
value: '选项1',
name:'hhahhaa',
id:'11',
label: '黄金糕'
}, {
value: '选项2',
label: '双皮奶',
name:'hha222hhaa',
id:'1111',
}, {
value: '选项3',
name:'hha333haa',
id:'1331',
label: '蚵仔煎'
}, {
value: '选项4',
label: '龙须面'
}, {
value: '选项5',
label: '北京烤鸭'
}],
siteForm: { siteForm: {
company_name: '', name: '青春永驻套餐',
company_address: '', price: '99999'
company_phone: '',
site_alias: '',
},
form: {
description: '',
detailDesc: '',
tags:'1331'
}, },
siteFormrules: { siteFormrules: {
site_alias: [ name: [
{ required: true, message: '请输入站点简称', trigger: 'blur' }
],
price: [
{ required: true, message: '请输入站点简称', trigger: 'blur' } { required: true, message: '请输入站点简称', trigger: 'blur' }
] ],
}, },
siteForm1: { projectTagData: [
domain_set: '', {
domain_source: '平台免费域名', name: '全部分类',
id: '0'
}, },
siteForm2: { {
zhifubao_pay: '', name: '针灸1',
weixin_pay: '', id: '1'
}, },
siteFormrules1: { {
domain_source: [ name: '针灸2',
{ required: true, message: '请输入站点简称', trigger: 'blur' } id: '11'
] },
{
name: '针灸3',
id: '12'
},
{
name: '针灸4',
id: '13'
}, },
domain_source: [
{ label: '平台免费域名', value: '平台免费域名', selectedLabel: "平台免费域名" },
{ label: '我自己有域名', value: '我自己有域名', selectedLabel: "我自己有域名" },
], ],
options_weixin_null: {
label: '暂无收款账号',
value: '暂时没有收款账号,我想稍后配置',
desc: '暂无收款账号,稍后配置'
},
select_placeholder_weixin: '暂无收款账号,稍后配置',
selectedItemWeixin: {},//
options_weixin: [],
options_zhifubao: [],
} }
}, },
computed: { computed: {
@ -133,10 +199,128 @@ export default {
}, },
mounted() { mounted() {
store.commit('SET_PAGETITLE', '基本设置'); store.commit('SET_PAGETITLE', '基本设置');
//
this.$nextTick(() => {
if (this.treatMentList.length >= 2) {
const defaultSelected = this.treatMentList.filter(item => item.checked === true);
defaultSelected.forEach(row => {
this.$refs.multipleTable.$refs.guiptable.toggleRowSelection(row, true);
});
this.selectedRows = defaultSelected;
this.updateSelectionState();
}
});
}, },
methods: { methods: {
changeSelect(value){ inputBlur(val){
console.log(value,'--'); //
this.$http('POST', '/supernew/ajax_get_type_batch_list', {
projectSearchId:this.projectSearchId,
search:this.projectSearchName
}).then(response => {
if (response.code == 0) {
this.dialogVisible = false;
}
}).catch(error => {
console.error(error, 'error')
})
console.log(val,'----搜索');
},
updateSelectionState() {
const allSelected = this.selectedRows.length === this.treatMentList.length;
const noneSelected = this.selectedRows.length === 0;
this.selectAll = allSelected;
this.isIndeterminate = !noneSelected && !allSelected;
this.selectedCount = this.selectedRows.length;
},
//
handleSelectionChange(rows) {
this.selectedRows = rows;
this.updateSelectionState();
},
handleSelectAllChange1(val) {
if (val) {
//
const unselectedRows = this.treatMentList.filter(
row => !this.selectedRows1.includes(row)
);
unselectedRows.forEach(row => {
this.$refs.multipleTable1.$refs.guiptable.toggleRowSelection(row, true);
});
} else {
//
this.selectedRows.forEach(row => {
this.$refs.multipleTable1.$refs.guiptable.toggleRowSelection(row, false);
});
}
},
changeNums(row) {
console.log(row.nums, '====row.nums');
},
handleClose() {
this.handleCancel()
},
handleCancel() {
this.dialogVisible = false;
},
handleConfirm() {
//
this.$http('POST', '/supernew/ajax_get_type_batch_list', {
}).then(response => {
if (response.code == 0) {
this.dialogVisible = false;
}
}).catch(error => {
console.error(error, 'error')
})
},
handleClear(value) {
// this.handleInput('')
console.log(value, 'value===qinghcu');
},
handleSelectAllChange(val) {
console.log(this.$refs.multipleTable, 'multipleTable-');
if (val) {
//
const unselectedRows = this.treatMentList.filter(
row => !this.selectedRows.includes(row)
);
unselectedRows.forEach(row => {
this.$refs.multipleTable.$refs.guiptable.toggleRowSelection(row, true);
});
} else {
//
this.selectedRows.forEach(row => {
this.$refs.multipleTable.$refs.guiptable.toggleRowSelection(row, false);
});
}
},
// //
// handleSelectionChange(rows) {
// this.selectedRows = rows;
// //
// const allSelected = rows.length === this.treatMentList.length;
// const noneSelected = rows.length === 0;
// this.selectAll = allSelected;
// this.isIndeterminate = !noneSelected && !allSelected;
// },
handleSizeChange(val) {
this.pageSize = val
this.getData()
},
handleCurrentChange(val) {
this.currentPage = val
this.getData()
},
changeSelect(value) {
console.log(value, '--');
}, },
btnClick() { btnClick() {
}, },
@ -192,10 +376,10 @@ export default {
}); });
}, },
cancelClick() { cancelClick() {
console.log('quxiao'); this.$router.push('/hosInformation')
}, },
confirmClick(type) { confirmClick() {
console.log(type, '确认'); this.dialogVisible = true;
} }
} }
@ -207,6 +391,66 @@ export default {
transition: all .5s; transition: all .5s;
border: 1px solid transparent; border: 1px solid transparent;
} }
.content{
margin-top: 16px;
color: #626573;
letter-spacing: 0.08em;
align-items: flex-start;
}
.register-btns {
display: flex;
flex-direction: row;
justify-content: center;
background: #FFFFFF;
padding: 16px 0px;
/* 蓝色阴影_常规 */
box-shadow: 0px 4px 16px 0px rgba(17, 55, 143, 0.12);
button:nth-child(1) {
margin-right: 56px;
}
}
.totalCount {
font-size: 12px;
font-weight: normal;
line-height: 13px;
letter-spacing: 0.08em;
color: #8A9099;
margin-left: 12px;
}
.tabProject {
gap: 12px;
.tab-item {
height: 28px;
min-width: 74px;
display: flex;
justify-content: center;
align-items: center;
box-sizing: border-box;
padding: 4px 12px;
gap: 4px;
align-self: stretch;
border-radius: 14px;
background: #FFFFFF;
box-sizing: border-box;
border: 1px solid #DFE2E6;
text-align: justify;
letter-spacing: 0.08em;
/* text/text_4 */
color: #8A9099;
}
.active {
color: #006AFF;
border: none;
background: #F2F3F5;
}
}
.addStore { .addStore {
margin-top: 12px; margin-top: 12px;

85
src/views/DoctorInformation.vue

@ -9,7 +9,7 @@
<div class="flex">医生照片 <div class="flex">医生照片
<img class="labelImg" src="@/assets/form_qua_ic.svg" alt=""> <img class="labelImg" src="@/assets/form_qua_ic.svg" alt="">
</div> </div>
<el-upload class="avatar-uploader upload-demo" accept=".jpg,.png" <el-upload class="avatar-uploader upload-demo" accept=".jpg,.png" :multiple="false"
action="https://jsonplaceholder.typicode.com/posts/" :file-list="fileList" action="https://jsonplaceholder.typicode.com/posts/" :file-list="fileList"
:on-preview="handlePreview" :on-remove="handleRemove" :on-success="handleAvatarSuccess" :on-preview="handlePreview" :on-remove="handleRemove" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"> :before-upload="beforeAvatarUpload">
@ -19,15 +19,15 @@
<div slot="tip" class="el-upload__tip desc">支持pngjpg格式尺寸32PX*32PX</div> <div slot="tip" class="el-upload__tip desc">支持pngjpg格式尺寸32PX*32PX</div>
</el-upload> </el-upload>
</div> </div>
<GuipInput ref="GuipInput" column="column" label="医生姓名" v-model="siteForm.company_name" <GuipInput ref="GuipInput" column="column" :required="true" label="医生姓名" v-model="siteForm.name"
prop="company_name" placeholder="请输入" /> prop="name" placeholder="请输入" />
</div> </div>
<div class="flex-line"></div> <div class="flex-line"></div>
<div class="flex-right"> <div class="flex-right">
<GuipInput ref="GuipInput" column="column" label="身份证号码" v-model="siteForm.company_address" <GuipInput ref="GuipInput" column="column" :required="true" label="身份证号码"
prop="company_address" placeholder="请输入" /> v-model="siteForm.idCard" prop="idCard" placeholder="请输入" />
<GuipInput ref="GuipInput" column="column" label="手机号码" v-model="siteForm.phone" <GuipInput ref="GuipInput" column="column" :required="true" label="手机号码"
prop="company_phone" placeholder="常用手机号" /> v-model="siteForm.phone" prop="phone" placeholder="常用手机号" />
</div> </div>
</div> </div>
</el-form> </el-form>
@ -39,10 +39,8 @@
<el-form :model="siteForm1" :rules="siteFormrules1" ref="siteForm1"> <el-form :model="siteForm1" :rules="siteFormrules1" ref="siteForm1">
<div class="flex-wrap"> <div class="flex-wrap">
<div class="flex-left"> <div class="flex-left">
<GuipFormItem column="column" class="" label="一句话介绍"> <GuipInput column="column" v-model="form.description" prop="description" label="一句话介绍"
<GuipTextarea slot="formDom" v-model="form.description" prop="description" width="100%" width="100%" height="56px" placeholder="请输入描述内容" maxlength="14" show-word-limit />
height="56px" placeholder="请输入描述内容" maxlength="14" show-word-limit />
</GuipFormItem>
<GuipFormItem column="column" class="" label="详细介绍"> <GuipFormItem column="column" class="" label="详细介绍">
<GuipTextarea slot="formDom" v-model="form.detailDesc" prop="description" width="100%" <GuipTextarea slot="formDom" v-model="form.detailDesc" prop="description" width="100%"
height="86px" autosize placeholder="请输入描述内容" maxlength="不限" show-word-limit /> height="86px" autosize placeholder="请输入描述内容" maxlength="不限" show-word-limit />
@ -50,14 +48,9 @@
</div> </div>
<div class="flex-line"></div> <div class="flex-line"></div>
<div class="flex-right"> <div class="flex-right">
<GuipFormItem column="column" label="个人标签"> <GuipSelect column="column" label="个人标签" desc="展示给患者,体现您的专业性" v-model="form.tags" multiple
<div slot="formLeft" class="form-top-icon"> </div> :options="options_payword" placeholder="点击选择">
<span slot="formRight" class="desc">展示给患者体现您的专业性</span>
<GuipSelect slot="formDom" v-model="form.tags" multiple :options="options_payword"
placeholder="点击选择">
</GuipSelect> </GuipSelect>
</GuipFormItem>
</div> </div>
</div> </div>
</el-form> </el-form>
@ -66,7 +59,6 @@
</div> </div>
</template> </template>
<script> <script>
import store from '../store';
import { mapState } from 'vuex'; import { mapState } from 'vuex';
import HoverButton from '@/components/HoverButton.vue'; import HoverButton from '@/components/HoverButton.vue';
import GuipFormItem from '@/components/GuipFormItem.vue'; import GuipFormItem from '@/components/GuipFormItem.vue';
@ -80,8 +72,8 @@ export default {
name: '', name: '',
props: [''], props: [''],
components: { components: {
GuipFormItem,
HoverButton, HoverButton,
GuipFormItem,
GuipInput, GuipInput,
GuipSelect, GuipSelect,
GuipTextarea, GuipTextarea,
@ -90,6 +82,7 @@ export default {
}, },
data() { data() {
return { return {
doctorId: '',
fileList: [ fileList: [
{ name: 'food.jpeg', url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100' } { name: 'food.jpeg', url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100' }
], ],
@ -110,19 +103,25 @@ export default {
label: '北京烤鸭' label: '北京烤鸭'
}], }],
siteForm: { siteForm: {
company_name: '', name: 'mingzi',
company_address: '', idCard: '',
company_phone: '', phone: '',
site_alias: '', img: '',
}, },
form: { form: {
description: '', description: '',
detailDesc: '', detailDesc: '',
tags:'' tags: ''
}, },
siteFormrules: { siteFormrules: {
site_alias: [ name: [
{ required: true, message: '请输入站点简称', trigger: 'blur' } { required: true, message: '请输入姓名', trigger: 'blur' }
],
idCard: [
{ required: true, message: '请输入身份证号', trigger: 'blur' }
],
phone: [
{ required: true, message: '请输入手机号', trigger: 'blur' }
] ]
}, },
siteForm1: { siteForm1: {
@ -134,8 +133,8 @@ export default {
weixin_pay: '', weixin_pay: '',
}, },
siteFormrules1: { siteFormrules1: {
domain_source: [ tags: [
{ required: true, message: '请输入站点简称', trigger: 'blur' } { required: true, message: '请输入站点简称', trigger: 'change' }
] ]
}, },
domain_source: [ domain_source: [
@ -157,9 +156,24 @@ export default {
...mapState(['pageTitle']) // VuexshowSidebar ...mapState(['pageTitle']) // VuexshowSidebar
}, },
mounted() { mounted() {
store.commit('SET_PAGETITLE', '基本设置'); const id = this.$route.query.id; // id
this.doctorId = id;
if (id) {
//
this.fetchDoctorData(id);
}
}, },
methods: { methods: {
fetchDoctorData(id) {
this.$http('POST', '/supernew/ajax_get_type_batch_list', {
id
}).then(response => {
this.projectTagData = response.data
}).catch(error => {
console.error(error, 'error')
})
},
btnClick() { btnClick() {
}, },
handleRemove(file, fileList) { handleRemove(file, fileList) {
@ -205,8 +219,17 @@ export default {
submitForm(form) { submitForm(form) {
console.log(this.$refs[form], '-----'); console.log(this.$refs[form], '-----');
this.$refs[form].validate((valid) => { this.$refs[form].validate((valid) => {
console.log(this[form], '======formxinxi');
if (valid) { if (valid) {
this.$http('POST', '/supernew/ajax_get_type_batch_list', {
name:form.name,
idCard:form.idCard,
phone:form.phone
}).then(response => {
this.projectTagData = response.data
}).catch(error => {
console.error(error, 'error')
})
alert('提交成功!'); alert('提交成功!');
} else { } else {
return false; return false;

52
src/views/HomeView.vue

@ -18,7 +18,7 @@
<div class="right flex"> <div class="right flex">
<span>搜索医生</span> <span>搜索医生</span>
<GuipInput ref="GuipInput" style="margin:0 24px 0 12px" width="280px" height="32px" <GuipInput ref="GuipInput" style="margin:0 24px 0 12px" width="280px" height="32px"
placeholder="输入姓名" /> placeholder="输入姓名" @blur="inputBlur" v-model="doctorName"/>
<GuipButton @click="addDoctor" size="form">新增医生</GuipButton> <GuipButton @click="addDoctor" size="form">新增医生</GuipButton>
</div> </div>
</div> </div>
@ -29,12 +29,12 @@
<el-avatar :src="item.avatar"></el-avatar> <el-avatar :src="item.avatar"></el-avatar>
<span class="name">{{ item.name }}</span> <span class="name">{{ item.name }}</span>
<span>{{ item.phone }}</span> <span>{{ item.phone }}</span>
<GuipSwitch :modelValue="item.status" @change="onSwitchChange(index)"> <GuipSwitch :modelValue="item.status" @change="onSwitchChange(item,index)">
</GuipSwitch> </GuipSwitch>
<GuipButton type="text" @click="editDoctor(index)">编辑</GuipButton> <GuipButton type="text" @click="editDoctor(item,index)">编辑</GuipButton>
</div> </div>
<div class="right"> <div class="right">
<GuipButton type="system" size="form" @click="addHospital(index)">添加医院</GuipButton> <GuipButton type="system" size="form" @click="addHospital(item)">添加医院</GuipButton>
</div> </div>
</div> </div>
@ -117,6 +117,7 @@ export default {
checked1: false, checked1: false,
totalNum: 0, totalNum: 0,
selectNum: 0, selectNum: 0,
doctorName:'',
isIndeterminate: false, isIndeterminate: false,
doctorList: [ doctorList: [
{ {
@ -218,6 +219,25 @@ export default {
computed: { computed: {
}, },
methods: { methods: {
//
getInitData(){
this.$store.dispatch('showLoading')
this.$http('POST', '/supernew/ajax_get_type_batch_list', {
doctorName:this.doctorName
}).then(response => {
if (response.code == 0) {
this.doctorList = response.data
}
this.$store.dispatch('hideLoading')
}).catch(error => {
console.error(error, 'error')
})
},
inputBlur(val){
console.log(val,'');
this.getInitData()
},
// //
calculateTotalNum() { calculateTotalNum() {
this.totalNum = this.doctorList.reduce((total, doctor) => { this.totalNum = this.doctorList.reduce((total, doctor) => {
@ -314,6 +334,7 @@ export default {
// } // }
// }, // },
batchOperate(type) { batchOperate(type) {
// this.tableSelections
if (type == '1') { if (type == '1') {
// //
@ -322,17 +343,28 @@ export default {
} }
}, },
onSwitchChange(index) { onSwitchChange(item,index) {
console.log(index, '===='); console.log(index, '====');
//
this.$http('POST', '/supernew/ajax_get_type_batch_list', {
id:item.id
}).then(response => {
if (response.code == 0) {
this.doctorList = response.data
}
}).catch(error => {
console.error(error, 'error')
})
}, },
addDoctor() { addDoctor() {
console.log('添加医生'); this.$router.push(`/doctorInformation`)
}, },
addHospital(index) { addHospital(item) {
console.log(index, '===='); this.$router.push(`/hosInformation?doctorId=${item.id}`)
}, },
editDoctor(index) { editDoctor(item) {
console.log(index, '===='); this.$router.push(`/doctorInformation?id=${item.id}`)
}, },
// //
handleSelectionChange(index, selection) { handleSelectionChange(index, selection) {

179
src/views/HosInformation.vue

@ -70,6 +70,27 @@
<el-form :model="siteForm1" :rules="siteFormrules1" ref="siteForm1"> <el-form :model="siteForm1" :rules="siteFormrules1" ref="siteForm1">
<div class="flex-wrap"> <div class="flex-wrap">
<div class="flex-left"> <div class="flex-left">
</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>
</div>
</GuipFormItem>
</div>
</div>
</el-form>
<GroupFormBtns @cancel="cancelClick" @confirm="submitForm('siteForm1')" />
</div>
<div class="siteMessage flex-common" id="siteMessage3">
<p class="littleTitle mb32">出诊时间</p>
<el-form :model="siteForm1" :rules="siteFormrules1" ref="siteForm1">
<div class="flex-wrap">
<div class="flex-left">
<GuipFormItem column="column" class="mb24" label="工作时间( 上午 )" :required="true"> <GuipFormItem column="column" class="mb24" label="工作时间( 上午 )" :required="true">
<el-time-picker slot="formDom" style="width:100%" is-range v-model="time1" <el-time-picker slot="formDom" style="width:100%" is-range v-model="time1"
range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" placeholder="选择时间范围" range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" placeholder="选择时间范围"
@ -97,7 +118,7 @@
</el-form> </el-form>
<GroupFormBtns @cancel="cancelClick" @confirm="submitForm('siteForm1')" /> <GroupFormBtns @cancel="cancelClick" @confirm="submitForm('siteForm1')" />
</div> </div>
<div class="siteMessage flex-common" id="siteMessage3"> <div class="siteMessage flex-common" id="siteMessage4">
<p class="littleTitle mb32">放号设置</p> <p class="littleTitle mb32">放号设置</p>
<el-form :model="numSettingForm" :rules="numSettingFormRule" ref="numSettingForm"> <el-form :model="numSettingForm" :rules="numSettingFormRule" ref="numSettingForm">
<div class="flex-wrap"> <div class="flex-wrap">
@ -133,7 +154,7 @@
<GroupFormBtns @cancel="cancelClick" @confirm="submitForm('numSettingForm')" /> <GroupFormBtns @cancel="cancelClick" @confirm="submitForm('numSettingForm')" />
</div> </div>
<p class="pageTitle bold">项目管理</p> <p class="pageTitle bold">项目管理</p>
<div class="siteMessage flex-common" id="siteMessage4"> <div class="siteMessage flex-common" id="siteMessage5">
<el-form> <el-form>
<div class=" mb32 flex-between"> <div class=" mb32 flex-between">
@ -160,7 +181,7 @@
</div> </div>
<div class="flex-between mb32 mt32"> <div class="flex-between mb32 mt32">
<div class="tabProject flex"> <div class="tabProject flex">
<div :class="['tab-item ', projectSearchId == item.id ? 'active' : '']" <div :class="['tab-item ', projectSearchId == item.id ? 'active' : '']" @click="selectTag(item)"
v-for="item in projectTagData" :key="item.name">{{ item.name }}</div> v-for="item in projectTagData" :key="item.name">{{ item.name }}</div>
</div> </div>
<div class="right flex"> <div class="right flex">
@ -198,7 +219,7 @@
</el-pagination> </el-pagination>
</el-form> </el-form>
</div> </div>
<div class="siteMessage flex-common mt12" id="siteMessage5"> <div class="siteMessage flex-common mt12" id="siteMessage6">
<el-form> <el-form>
<div class=" mb32 flex-between"> <div class=" mb32 flex-between">
<span class="littleTitle">疗程套餐</span> <span class="littleTitle">疗程套餐</span>
@ -248,11 +269,26 @@
</el-pagination> </el-pagination>
</el-form> </el-form>
</div> </div>
<GuipDialog :dialogVisible="dialogVisible" :title="dialogTitle" :show-close-button="true" width="762"
type="center" :show-cancel-button="true" @confirm="handleConfirm" @cancel="handleCancel"
@close="handleClose" @dialogVisibleChange="dialogVisibleChange">
<BatchProject v-if="dialogType == '1'" :projectTagData="projectTagData" @getproTag="getProTagData" />
</GuipDialog>
<GuipDialog :dialogVisible="dialogVisible1" :title="'新增项目分组'" :show-close-button="true" width="599px"
type="center" :show-cancel-button="true" @confirm="handleConfirm" @cancel="handleCancel"
@close="handleClose" confirmText="确定新增" @dialogVisibleChange="dialogVisibleChange">
<el-form :model="form1" @submit.native.prevent ref="projectNameForm">
<GuipFormItem column="column" class="" label="分组名称">
<GuipInput slot="formDom" ref="GuipInput" v-model="form1.projectName" :rules="nameRules"
prop="projectName" placeholder="请填写新增分组名称" />
</GuipFormItem>
</el-form>
</GuipDialog>
</div> </div>
</template> </template>
<script> <script>
import store from '../store';
import GuipFormItem from '@/components/GuipFormItem.vue'; import GuipFormItem from '@/components/GuipFormItem.vue';
import BatchProject from '@/components/BatchProject.vue';
import GuipButton from '@/components/GuipButton.vue'; import GuipButton from '@/components/GuipButton.vue';
import GuipInput from '@/components/GuipInput.vue'; import GuipInput from '@/components/GuipInput.vue';
import GuipTextarea from '@/components/GuipTextarea.vue'; import GuipTextarea from '@/components/GuipTextarea.vue';
@ -260,7 +296,7 @@ import GroupFormBtns from '@/components/GroupFormBtns.vue';
import GuipSelect from '@/components/GuipSelect.vue'; import GuipSelect from '@/components/GuipSelect.vue';
import GuipSwitch from '@/components/GuipSwitch.vue'; import GuipSwitch from '@/components/GuipSwitch.vue';
import GuipTable from '@/components/GuipTable.vue'; import GuipTable from '@/components/GuipTable.vue';
// import {setHighActive} from '@/utils/common'; import GuipDialog from '@/components/GuipDialog.vue';
export default { export default {
// //
name: '', name: '',
@ -268,7 +304,9 @@ export default {
components: { components: {
GuipFormItem, GuipFormItem,
BatchProject,
GuipButton, GuipButton,
GuipDialog,
GuipInput, GuipInput,
GuipTable, GuipTable,
GuipSwitch, GuipSwitch,
@ -279,10 +317,19 @@ export default {
}, },
data() { data() {
return { return {
currentPage:1, doctorId:'',
pageSize:10, dialogType: '1',
currentPage1:1, dialogVisible: false,
pageSize1:10, dialogVisible1: true,
form1: {
projectName: ''
},
nameRules: [{ required: true, message: '分组名称不得为空', trigger: 'blur' }],
dialogTitle: '批量录入项目',
currentPage: 1,
pageSize: 10,
currentPage1: 1,
pageSize1: 10,
loading: false, loading: false,
loading1: false, loading1: false,
selectedRows: [],// selectedRows: [],//
@ -476,15 +523,108 @@ export default {
options_zhifubao: [], options_zhifubao: [],
} }
}, },
mounted() {
const doctorId = this.$route.query.doctorId; // doctorId
if (doctorId) {
//
this.doctorId = doctorId
}
},
computed: { computed: {
selectedCount() { selectedCount() {
return this.selectedRows.length; return this.selectedRows.length;
} // VuexshowSidebar }
},
mounted() {
store.commit('SET_PAGETITLE', '基本设置');
}, },
methods: { methods: {
fetchDoctorData(id) {
this.$http('POST', '/supernew/ajax_get_type_batch_list', {
id
}).then(response => {
this.projectTagData = response.data
}).catch(error => {
console.error(error, 'error')
})
},
selectTag(item) {
this.projectSearchId = item.id
},
getProTagData() {
this.$http('POST', '/supernew/ajax_get_type_batch_list', {
}).then(response => {
this.projectTagData = response.data
}).catch(error => {
console.error(error, 'error')
})
},
addNewSetMenu() {
this.$router.push('/addNewTreatment')
},
handleClose() {
this.$Message.info('弹框已关闭');
this.dialogVisible = false;
},
handleSizeChange(val) {
this.pageSize = val
this.getData()
},
handleCurrentChange(val) {
this.currentPage = val
this.getData()
},
getTypeRanking() {
//
const that = this
that.tableData = []
that.top_list = []
this.loading = true;
this.$http('POST', '/supernew/ajax_get_type_batch_list', {
date: that.text,
rank_type: that.dataRank,
sort_by: that.sort_by,
sort_order: that.sort_order,
cur_page: that.currentPage,
page_size: that.pageSize,
}).then(response => {
this.loading = false;
this.$nextTick(() => {
that.tableData = response.data.list
that.top_list = response.data.top_list
that.total = response.data.total
})
}).catch(error => {
console.error(error, 'error')
})
},
//
handleConfirm() {
if (this.dialogVisible1) {
this.$refs['projectNameForm'].validate((valid) => {
if (valid) {
alert('submit!');
this.dialogVisible1 = false;
} else {
console.log('error submit!!');
return false;
}
});
} else if (this.dialogVisible) {
this.$Message.success('点击了确认按钮');
this.dialogVisible = false;
}
},
//
handleCancel() {
this.$Message.warning('点击了取消按钮');
this.dialogVisible = false;
this.dialogVisible1 = false;
},
dialogVisibleChange(data) {
console.log(data, 'data098908090');
},
onSwitchChange1(row) { onSwitchChange1(row) {
row.status = !row.status; row.status = !row.status;
this.$set(this.projectList, row) this.$set(this.projectList, row)
@ -493,13 +633,18 @@ export default {
row.status = !row.status; row.status = !row.status;
this.$set(this.courseList, row) this.$set(this.courseList, row)
}, },
handleClick1(row) {
console.log(row);
this.$router.push(`/addNewTreatment?id=${row.id}`)
//
},
handleClick(row) { handleClick(row) {
console.log(row); console.log(row);
// //
}, },
// //
handleSelectAllChange(val) { handleSelectAllChange(val) {
console.log(this.$refs.multipleTable,'multipleTable-'); console.log(this.$refs.multipleTable, 'multipleTable-');
if (val) { if (val) {
// //
const unselectedRows = this.projectList.filter( const unselectedRows = this.projectList.filter(
@ -519,7 +664,6 @@ export default {
// //
handleSelectionChange(rows) { handleSelectionChange(rows) {
this.selectedRows = rows; this.selectedRows = rows;
// //
const allSelected = rows.length === this.projectList.length; const allSelected = rows.length === this.projectList.length;
const noneSelected = rows.length === 0; const noneSelected = rows.length === 0;
@ -528,7 +672,7 @@ export default {
this.isIndeterminate = !noneSelected && !allSelected; this.isIndeterminate = !noneSelected && !allSelected;
}, },
handleSelectAllChange1(val) { handleSelectAllChange1(val) {
console.log(this.$refs.multipleTable,'multipleTable-'); console.log(this.$refs.multipleTable, 'multipleTable-');
if (val) { if (val) {
// //
const unselectedRows = this.courseList.filter( const unselectedRows = this.courseList.filter(
@ -685,6 +829,7 @@ export default {
.active { .active {
color: #006AFF; color: #006AFF;
border: none;
background: #F2F3F5; background: #F2F3F5;
} }
} }

22
src/views/elementGroups.vue

@ -11,7 +11,7 @@
</div> </div>
<div class="ele-item"> <div class="ele-item">
<label for="">下拉框</label> <label for="">下拉框</label>
<GuipSelect width="600px" v-model="form.card" label="卡片" prop="card" :options="options" <GuipSelect width="600px" v-model="form.card" label="卡片" :default-value="form.card" prop="card" :options="options" valueKey="id1" labelKey="id2"
defaultValue="选项1" /> defaultValue="选项1" />
</div> </div>
<div> <div>
@ -33,7 +33,7 @@
'0' ? '文字居中' : '文字居中' }}</span> '0' ? '文字居中' : '文字居中' }}</span>
</GuipToolTip> </GuipToolTip>
<GuipToolTip content="图标居中"> <GuipToolTip content="图标居中">
<svg-icon :size="16" :path="require('@/assets/tableEdit.svg')" <svg-icon :size="16" :path="require('@/assets//tableEdit.svg')"
:color="'#8A9099'" :hoverColor="'#006AFF'" /> :color="'#8A9099'" :hoverColor="'#006AFF'" />
</GuipToolTip> </GuipToolTip>
@ -48,7 +48,7 @@
scope.row.payment scope.row.payment
== ==
'0' ? '单元格局中' : '单元格局中' }}</span> '0' ? '单元格局中' : '单元格局中' }}</span>
<svg-icon :size="16" :path="require('@/assets/tableEdit.svg')" <svg-icon :size="16" :path="require('@/assets//tableEdit.svg')"
:color="'#8A9099'" :hoverColor="'#006AFF'" /> :color="'#8A9099'" :hoverColor="'#006AFF'" />
</div> </div>
@ -129,7 +129,7 @@
<div class="ele-item"> <div class="ele-item">
<label for="">输入框</label> <label for="">输入框</label>
<GuipInput ref="GuipInput" v-model="form.input1" width="200px" height="30px" <GuipInput ref="GuipInput" v-model="form.input1" :defaultValue="form.input1" width="200px" height="30px"
placeholder="这是自定义默认提示语" /> placeholder="这是自定义默认提示语" />
<div style="width: 20px;height: 10px;"></div> <div style="width: 20px;height: 10px;"></div>
@ -323,7 +323,7 @@
</template> </template>
</GuipToolTip> </GuipToolTip>
<GuipToolTip placement="bottom" effect="light" content="点击进入编辑"> <GuipToolTip placement="bottom" effect="light" content="点击进入编辑">
<svg-icon :path="require('@/assets/tableEdit.svg')" :color="'#8A9099'" <svg-icon :path="require('@/assets//tableEdit.svg')" :color="'#8A9099'"
:hoverColor="'#006AFF'" /> :hoverColor="'#006AFF'" />
</GuipToolTip> </GuipToolTip>
</div> </div>
@ -421,7 +421,7 @@ export default {
form: { form: {
username: '', username: '',
language: '', language: '',
input1: '', input1: 'jajja',
input2: '', input2: '',
input3: '', input3: '',
}, },
@ -640,21 +640,31 @@ export default {
options: [{ options: [{
value: '选项1', value: '选项1',
label1: '黄金hhhhhh', label1: '黄金hhhhhh',
id1:'1',
id2:'啊11哈哈',
label: '黄金糕' label: '黄金糕'
}, { }, {
value: '选项2', value: '选项2',
id1:'12',
id2:'啊22哈哈',
label1: '双皮奶hhhhhhhhh', label1: '双皮奶hhhhhhhhh',
label: '双皮奶' label: '双皮奶'
}, { }, {
value: '选项3', value: '选项3',
id1:'13',
id2:'啊33哈哈',
label1: '蚵仔煎hhhhhhhhh', label1: '蚵仔煎hhhhhhhhh',
label: '蚵仔煎' label: '蚵仔煎'
}, { }, {
value: '选项4', value: '选项4',
id1:'14',
id2:'啊444哈哈',
label1: '双皮奶hhhhhhhhh', label1: '双皮奶hhhhhhhhh',
label: '龙须面' label: '龙须面'
}, { }, {
value: '选项5', value: '选项5',
id1:'155',
id2:'啊55哈哈',
label1: '双皮奶hhhhhhhhh', label1: '双皮奶hhhhhhhhh',
label: '北京烤鸭' label: '北京烤鸭'
}], }],

Loading…
Cancel
Save