Browse Source

修复提交

master
主管理员 1 month ago
parent
commit
6ebee69895
30 changed files with 13337 additions and 13322 deletions
  1. +1
    -0
      admin-hanhai-vue/package.json
  2. +89
    -87
      admin-hanhai-vue/src/main.js
  3. +152
    -133
      admin-hanhai-vue/src/views/CityJd/modules/CityJdForm.vue
  4. +226
    -4
      admin-hanhai-vue/src/views/CityJd/modules/TencentMapPicker.vue
  5. +232
    -213
      admin-hanhai-vue/src/views/cityHome/modules/CityHomeForm.vue
  6. +2
    -2
      admin-hanhai-vue/src/views/cityHome/modules/TencentMapPicker.vue
  7. +213
    -188
      admin-hanhai-vue/src/views/cityJob/modules/CityJobForm.vue
  8. +2
    -2
      admin-hanhai-vue/src/views/cityJob/modules/TencentMapPicker.vue
  9. +263
    -252
      admin-hanhai-vue/src/views/cityMoneyLog/CityMoneyLogList.vue
  10. +151
    -148
      admin-hanhai-vue/src/views/cityMoneyLog/modules/CityMoneyLogForm.vue
  11. +234
    -213
      admin-hanhai-vue/src/views/cityShop/modules/CityShopForm.vue
  12. +2
    -2
      admin-hanhai-vue/src/views/cityShop/modules/TencentMapPicker.vue
  13. +11679
    -12040
      admin-hanhai-vue/yarn.lock
  14. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityHome/controller/CityHomeController.java
  15. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityHome/entity/CityHome.java
  16. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityHome/mapper/CityHomeMapper.java
  17. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityHome/service/ICityHomeService.java
  18. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityHome/service/impl/CityHomeServiceImpl.java
  19. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityJob/controller/CityJobController.java
  20. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityJob/entity/CityJob.java
  21. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityJob/mapper/CityJobMapper.java
  22. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityJob/service/ICityJobService.java
  23. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityJob/service/impl/CityJobServiceImpl.java
  24. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/controller/CityShopController.java
  25. +13
    -12
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/entity/CityShop.java
  26. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/mapper/CityShopMapper.java
  27. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/service/ICityShopService.java
  28. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/service/impl/CityShopServiceImpl.java
  29. +60
    -4
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/vue3/CityShop.data.ts
  30. +4
    -8
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/citySignLog/entity/CitySignLog.java

+ 1
- 0
admin-hanhai-vue/package.json View File

@ -35,6 +35,7 @@
"vue-area-linkage": "^5.1.0",
"vue-cropper": "^0.5.4",
"vue-i18n": "^8.7.0",
"vue-jsonp": "^2.1.0",
"vue-loader": "^15.7.0",
"vue-ls": "^3.2.0",
"vue-photo-preview": "^1.1.3",


+ 89
- 87
admin-hanhai-vue/src/main.js View File

@ -1,88 +1,90 @@
/** init domain config */
import './config'
import Vue from 'vue'
import App from './App.vue'
import Storage from 'vue-ls'
import router from './router'
import store from './store/'
import { VueAxios } from "@/utils/request"
require('@jeecg/antd-online-mini')
require('@jeecg/antd-online-mini/dist/OnlineForm.css')
import Antd, { version } from 'ant-design-vue'
console.log('ant-design-vue version:', version)
import Viser from 'viser-vue'
import 'ant-design-vue/dist/antd.less'; // or 'ant-design-vue/dist/antd.less'
import '@/permission' // permission control
import '@/utils/filter' // base filter
import Print from 'vue-print-nb-jeecg'
/*import '@babel/polyfill'*/
import preview from 'vue-photo-preview'
import 'vue-photo-preview/dist/skin.css'
import SSO from '@/cas/sso.js'
import {
ACCESS_TOKEN,
DEFAULT_COLOR,
DEFAULT_THEME,
DEFAULT_LAYOUT_MODE,
DEFAULT_COLOR_WEAK,
SIDEBAR_TYPE,
DEFAULT_FIXED_HEADER,
DEFAULT_FIXED_HEADER_HIDDEN,
DEFAULT_FIXED_SIDEMENU,
DEFAULT_CONTENT_WIDTH_TYPE,
DEFAULT_MULTI_PAGE
} from "@/store/mutation-types"
import config from '@/defaultSettings'
import JDictSelectTag from './components/dict/index.js'
import hasPermission from '@/utils/hasPermission'
import vueBus from '@/utils/vueBus';
import JeecgComponents from '@/components/jeecg/index'
import '@/assets/less/JAreaLinkage.less'
import VueAreaLinkage from 'vue-area-linkage'
import '@/components/jeecg/JVxeTable/install'
import '@/components/JVxeCells/install'
//表单验证
import { rules } from '@/utils/rules'
Vue.prototype.rules = rules
Vue.config.productionTip = false
Vue.use(Storage, config.storageOptions)
Vue.use(Antd)
Vue.use(VueAxios, router)
Vue.use(Viser)
Vue.use(hasPermission)
Vue.use(JDictSelectTag)
Vue.use(Print)
Vue.use(preview)
Vue.use(vueBus);
Vue.use(JeecgComponents);
Vue.use(VueAreaLinkage);
SSO.init(() => {
main()
})
function main() {
new Vue({
router,
store,
mounted () {
store.commit('SET_SIDEBAR_TYPE', Vue.ls.get(SIDEBAR_TYPE, true))
store.commit('TOGGLE_THEME', Vue.ls.get(DEFAULT_THEME, config.navTheme))
store.commit('TOGGLE_LAYOUT_MODE', Vue.ls.get(DEFAULT_LAYOUT_MODE, config.layout))
store.commit('TOGGLE_FIXED_HEADER', Vue.ls.get(DEFAULT_FIXED_HEADER, config.fixedHeader))
store.commit('TOGGLE_FIXED_SIDERBAR', Vue.ls.get(DEFAULT_FIXED_SIDEMENU, config.fixSiderbar))
store.commit('TOGGLE_CONTENT_WIDTH', Vue.ls.get(DEFAULT_CONTENT_WIDTH_TYPE, config.contentWidth))
store.commit('TOGGLE_FIXED_HEADER_HIDDEN', Vue.ls.get(DEFAULT_FIXED_HEADER_HIDDEN, config.autoHideHeader))
store.commit('TOGGLE_WEAK', Vue.ls.get(DEFAULT_COLOR_WEAK, config.colorWeak))
store.commit('TOGGLE_COLOR', Vue.ls.get(DEFAULT_COLOR, config.primaryColor))
store.commit('SET_TOKEN', Vue.ls.get(ACCESS_TOKEN))
store.commit('SET_MULTI_PAGE',Vue.ls.get(DEFAULT_MULTI_PAGE,config.multipage))
},
render: h => h(App)
}).$mount('#app')
/** init domain config */
import './config'
import Vue from 'vue'
import App from './App.vue'
import Storage from 'vue-ls'
import router from './router'
import store from './store/'
import { VueAxios } from "@/utils/request"
import { VueJsonp } from 'vue-jsonp'
Vue.use(VueJsonp)
require('@jeecg/antd-online-mini')
require('@jeecg/antd-online-mini/dist/OnlineForm.css')
import Antd, { version } from 'ant-design-vue'
console.log('ant-design-vue version:', version)
import Viser from 'viser-vue'
import 'ant-design-vue/dist/antd.less'; // or 'ant-design-vue/dist/antd.less'
import '@/permission' // permission control
import '@/utils/filter' // base filter
import Print from 'vue-print-nb-jeecg'
/*import '@babel/polyfill'*/
import preview from 'vue-photo-preview'
import 'vue-photo-preview/dist/skin.css'
import SSO from '@/cas/sso.js'
import {
ACCESS_TOKEN,
DEFAULT_COLOR,
DEFAULT_THEME,
DEFAULT_LAYOUT_MODE,
DEFAULT_COLOR_WEAK,
SIDEBAR_TYPE,
DEFAULT_FIXED_HEADER,
DEFAULT_FIXED_HEADER_HIDDEN,
DEFAULT_FIXED_SIDEMENU,
DEFAULT_CONTENT_WIDTH_TYPE,
DEFAULT_MULTI_PAGE
} from "@/store/mutation-types"
import config from '@/defaultSettings'
import JDictSelectTag from './components/dict/index.js'
import hasPermission from '@/utils/hasPermission'
import vueBus from '@/utils/vueBus';
import JeecgComponents from '@/components/jeecg/index'
import '@/assets/less/JAreaLinkage.less'
import VueAreaLinkage from 'vue-area-linkage'
import '@/components/jeecg/JVxeTable/install'
import '@/components/JVxeCells/install'
//表单验证
import { rules } from '@/utils/rules'
Vue.prototype.rules = rules
Vue.config.productionTip = false
Vue.use(Storage, config.storageOptions)
Vue.use(Antd)
Vue.use(VueAxios, router)
Vue.use(Viser)
Vue.use(hasPermission)
Vue.use(JDictSelectTag)
Vue.use(Print)
Vue.use(preview)
Vue.use(vueBus);
Vue.use(JeecgComponents);
Vue.use(VueAreaLinkage);
SSO.init(() => {
main()
})
function main() {
new Vue({
router,
store,
mounted () {
store.commit('SET_SIDEBAR_TYPE', Vue.ls.get(SIDEBAR_TYPE, true))
store.commit('TOGGLE_THEME', Vue.ls.get(DEFAULT_THEME, config.navTheme))
store.commit('TOGGLE_LAYOUT_MODE', Vue.ls.get(DEFAULT_LAYOUT_MODE, config.layout))
store.commit('TOGGLE_FIXED_HEADER', Vue.ls.get(DEFAULT_FIXED_HEADER, config.fixedHeader))
store.commit('TOGGLE_FIXED_SIDERBAR', Vue.ls.get(DEFAULT_FIXED_SIDEMENU, config.fixSiderbar))
store.commit('TOGGLE_CONTENT_WIDTH', Vue.ls.get(DEFAULT_CONTENT_WIDTH_TYPE, config.contentWidth))
store.commit('TOGGLE_FIXED_HEADER_HIDDEN', Vue.ls.get(DEFAULT_FIXED_HEADER_HIDDEN, config.autoHideHeader))
store.commit('TOGGLE_WEAK', Vue.ls.get(DEFAULT_COLOR_WEAK, config.colorWeak))
store.commit('TOGGLE_COLOR', Vue.ls.get(DEFAULT_COLOR, config.primaryColor))
store.commit('SET_TOKEN', Vue.ls.get(ACCESS_TOKEN))
store.commit('SET_MULTI_PAGE',Vue.ls.get(DEFAULT_MULTI_PAGE,config.multipage))
},
render: h => h(App)
}).$mount('#app')
}

+ 152
- 133
admin-hanhai-vue/src/views/CityJd/modules/CityJdForm.vue View File

@ -1,134 +1,153 @@
<template>
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row>
<a-col :span="24">
<a-form-model-item label="景点名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="name">
<a-input v-model="model.name" placeholder="请输入景点名称" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="景点位置" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="address">
<a-input v-model="model.address" placeholder="请输入景点位置" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="经度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="longitude">
<a-input v-model="model.longitude" placeholder="请输入经度" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="纬度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="latitude">
<a-input v-model="model.latitude" placeholder="请输入纬度" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="图片" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="images">
<j-image-upload isMultiple v-model="model.images" ></j-image-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="主图" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="titleImage">
<j-image-upload isMultiple v-model="model.titleImage" ></j-image-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="介绍" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="details">
<j-editor v-model="model.details" />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
</a-spin>
</template>
<script>
import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
export default {
name: 'CityJdForm',
components: {
},
props: {
//
disabled: {
type: Boolean,
default: false,
required: false
}
},
data () {
return {
model:{
},
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
confirmLoading: false,
validatorRules: {
},
url: {
add: "/cityJd/cityJd/add",
edit: "/cityJd/cityJd/edit",
queryById: "/cityJd/cityJd/queryById"
}
}
},
computed: {
formDisabled(){
return this.disabled
},
},
created () {
//model
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
add () {
this.edit(this.modelDefault);
},
edit (record) {
this.model = Object.assign({}, record);
this.visible = true;
},
submitForm () {
const that = this;
//
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true;
let httpurl = '';
let method = '';
if(!this.model.id){
httpurl+=this.url.add;
method = 'post';
}else{
httpurl+=this.url.edit;
method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
that.$message.success(res.message);
that.$emit('ok');
}else{
that.$message.warning(res.message);
}
}).finally(() => {
that.confirmLoading = false;
})
}
})
},
}
}
<template>
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row>
<a-col :span="24">
<a-form-model-item label="景点名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="name">
<a-input v-model="model.name" placeholder="请输入景点名称" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="景点位置" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="address">
<a-input v-model="model.address" placeholder="请输入景点位置" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="经度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="longitude">
<a-input v-model="model.longitude" placeholder="请输入经度" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="纬度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="latitude">
<a-input v-model="model.latitude" placeholder="请输入纬度" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="地图选择位置" :labelCol="labelCol" :wrapperCol="wrapperCol">
<TencentMapPicker
:latitude="model.latitude"
:longitude="model.longitude"
@onLocationSelected="handleLocationSelected"
/>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="图片" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="images">
<j-image-upload isMultiple v-model="model.images" ></j-image-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="主图" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="titleImage">
<j-image-upload isMultiple v-model="model.titleImage" ></j-image-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="介绍" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="details">
<j-editor v-model="model.details" />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
</a-spin>
</template>
<script>
import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
import TencentMapPicker from './TencentMapPicker.vue';
export default {
name: 'CityJdForm',
components: {
TencentMapPicker
},
props: {
//
disabled: {
type: Boolean,
default: false,
required: false
}
},
data () {
return {
model:{
},
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
confirmLoading: false,
validatorRules: {
},
url: {
add: "/cityJd/cityJd/add",
edit: "/cityJd/cityJd/edit",
queryById: "/cityJd/cityJd/queryById"
}
}
},
computed: {
formDisabled(){
return this.disabled
},
},
created () {
//model
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
handleLocationSelected({latitude, longitude}) {
console.log('event11',latitude, longitude)
this.model.latitude = latitude;
this.model.longitude = longitude;
},
add () {
this.edit(this.modelDefault);
},
edit (record) {
this.model = Object.assign({}, record);
this.visible = true;
},
submitForm () {
const that = this;
//
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true;
let httpurl = '';
let method = '';
if(!this.model.id){
httpurl+=this.url.add;
method = 'post';
}else{
httpurl+=this.url.edit;
method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
that.$message.success(res.message);
that.$emit('ok');
}else{
that.$message.warning(res.message);
}
}).finally(() => {
that.confirmLoading = false;
})
}
})
},
}
}
</script>

+ 226
- 4
admin-hanhai-vue/src/views/CityJd/modules/TencentMapPicker.vue View File

@ -1,13 +1,235 @@
<template>
$END$
<div>
<div class="map-box">
<div class="map" ref="map" style="height: 400px" ></div>
<div class="map-search">
<div>
<a-input-search id="place" v-model="searchValue" placeholder="请输入详细地址" enter-button @search="searchAddress(searchValue)" />
</div>
<div>
<ul v-if="kwData.length">
<li v-for="(item, index) in kwData" :key="index" @click="selectKeyword(item)">{{ item.address }}</li>
</ul>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: "TencentMapPicker"
name: 'TencentMapPicker',
props: {
latitude: {
type: Number|String,
default: 0
},
longitude: {
type: Number|String,
default: 0
}
},
watch: {
latitude(newVal, oldVal) {
console.info(`newVal`,newVal,`oldVal`,oldVal)
if (newVal) {
this.form.latitude = newVal
// this.$nextTick(()=>{
// this.map.setCenter(new window.TMap.LatLng(this.form.latitude, this.form.longitude));
// })
}
},
longitude(newVal, oldVal) {
console.info(`newVal`,newVal,`oldVal`,oldVal)
if (newVal) {
this.form.longitude = newVal
// this.$nextTick(()=>{
// this.map.setCenter(new window.TMap.LatLng(this.form.latitude, this.form.longitude));
// })
}
}
},
data() {
return {
searchValue: '', //
form: {
longitude: 111.5742733827758,
latitude: 25.182807000000015
},
kwData:[]
}
},
mounted() {
let that = this
if (that.script) return;
that.script = document.createElement('script');
that.script.type = 'text/javascript';
that.script.src = `//map.qq.com/api/gljs?v=1.exp&libraries=service&key=DGFBZ-JU76M-34A63-6BU47-2FLJH-XLBCN`;
document.head.appendChild(that.script);
that.script.onload = () => {
window.initMap = that.initMap;
that.$nextTick(() => {
that.initMap();
});
};
},
methods: {
//
initMap() {
//
this.searchEr = new window.TMap.service.Search({ pageSize: 15 });
//
this.map = new window.TMap.Map(this.$refs.map, {
backgroundColor: '#f7f7f7',
mapStyleId: 'style1',
zoom: 14,
mapTypeControlOptions: {
mapTypeIds: [],
},
draggableCursor: 'crosshair',
center: new window.TMap.LatLng(this.form.latitude, this.form.longitude),
});
//
this.markerLayer = new window.TMap.MultiMarker({
map: this.map,
geometries: [],
});
//
this.geocoder = new window.TMap.service.Geocoder();
const setMarker = () => {
const latlng = new window.TMap.LatLng(this.form.latitude, this.form.longitude);
this.markerLayer.setGeometries([]);
let geometries = this.markerLayer.getGeometries();
geometries.push({
id: '-1',
position: latlng,
});
this.markerLayer.updateGeometries(geometries);
};
this.map.on('click', (e) => {
this.form.longitude = e.latLng.getLng(); //
this.form.latitude = e.latLng.getLat(); //
setMarker();
this.getAddressFormat();
});
if (this.form.longitude) {
this.map.setCenter(new window.TMap.LatLng(this.form.latitude, this.form.longitude));
setMarker();
}
},
selectKeyword(event){
this.map.setCenter(new window.TMap.LatLng(event.location.lat, event.location.lng));
this.kwData = []
},
//
searchAddress(keyword = '') {
console.log(keyword+"=====")
if (!keyword) return;
this.$jsonp('https://apis.map.qq.com/ws/place/v1/suggestion', {
key: 'DGFBZ-JU76M-34A63-6BU47-2FLJH-XLBCN',
output: 'jsonp',
keyword: keyword,
}).then((res) => {
console.log(`res`,res)
if (res.status === 0) {
this.kwData = res.data
} else {
this.kwData = []
}
}).catch((e) => {
console.log(e)
})
this.markerLayer.setGeometries([]);
this.searchEr.searchRectangle({
keyword,
bounds: this.map.getBounds(),
})
.then((result) => {
console.info(`result`,result)
const { location = {} } = result.data[0] || {};
const { lat = 39.916527, lng = 116.397128 } = location;
this.map.setCenter(new window.TMap.LatLng(lat, lng));
result.data.forEach((item, index) => {
let geometries = this.markerLayer.getGeometries();
//
geometries.push({
id: String(index),
position: item.location,
});
//
this.markerLayer.updateGeometries(geometries);
});
});
},
getAddressFormat() {
const { longitude, latitude } = this.form;
this.geocoder
.getAddress({
location: new window.TMap.LatLng(latitude, longitude),
})
.then((res) => {
const {
formatted_addresses: { recommend = '' },
} = res.result || {};
this.searchValue = recommend
this.form.hotelDetailAddress = recommend;
this.$emit('onLocationSelected', this.form);
console.log(this.form);
});
},
}
}
</script>
<style scoped>
.map-box {
position: relative;
}
.map-search {
z-index: 1000;
display: flex;
flex-direction: column;
position: absolute;
top: 20px;
left: 20px;
width: 300px;
}
button {
border-radius: 0;
}
.icons {
display: flex;
align-items: center;
justify-content: space-between;
}
.time {
margin-top: 15px;
width: 100%;
font-size: 12px;
flex-wrap: wrap;
height: 70%;
}
ul{
background: white;
list-style-type: none;
padding-left: 0px;
height: 280px;
overflow: scroll;
}
li{
padding-left: 6px;
font-size: 10px;
text-align: left;
height: 40px;
line-height: 15px;
display: flex;
align-items: center;
}
li:hover{
cursor: pointer;
background: #f5f5f5;
}
</style>

+ 232
- 213
admin-hanhai-vue/src/views/cityHome/modules/CityHomeForm.vue View File

@ -1,214 +1,233 @@
<template>
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row>
<a-col :span="24">
<a-form-model-item label="发布用户" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userId">
<j-search-select-tag v-model="model.userId" dict="han_hai_member,nick_name,id" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="所属区域" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="addId">
<j-search-select-tag v-model="model.addId" dict="city_addr,name,id" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="标题" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="title">
<a-input v-model="model.title" placeholder="请输入标题" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="备注" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="titleSub">
<a-textarea v-model="model.titleSub" rows="4" placeholder="请输入备注" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="图片" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="image">
<j-image-upload isMultiple v-model="model.image" ></j-image-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="租金" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="money">
<a-input v-model="model.money" placeholder="请输入租金" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="面积" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="crm">
<a-input v-model="model.crm" placeholder="请输入面积" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="楼层" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="floor">
<a-input v-model="model.floor" placeholder="请输入楼层" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="朝向" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="face">
<a-input v-model="model.face" placeholder="请输入朝向" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="装修" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="decoration">
<a-input v-model="model.decoration" placeholder="请输入装修" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="付款" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="payment">
<a-input v-model="model.payment" placeholder="请输入付款" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="电梯" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="lift">
<a-input v-model="model.lift" placeholder="请输入电梯" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="交付" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="deliver">
<a-input v-model="model.deliver" placeholder="请输入交付" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="看房" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="showings">
<a-input v-model="model.showings" placeholder="请输入看房" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="电话" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="phone">
<a-input v-model="model.phone" placeholder="请输入电话" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="address">
<a-textarea v-model="model.address" rows="4" placeholder="请输入地址" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="浏览量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="num">
<a-input v-model="model.num" placeholder="请输入浏览量" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="经度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="longitude">
<a-input v-model="model.longitude" placeholder="请输入经度" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="纬度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="latitude">
<a-input v-model="model.latitude" placeholder="请输入纬度" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="一室一卫" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="home">
<a-input v-model="model.home" placeholder="请输入一室一卫" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="优选" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isGood">
<a-input v-model="model.isGood" placeholder="请输入优选" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="低价" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isMinPrice">
<a-input v-model="model.isMinPrice" placeholder="请输入低价" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="发布人头像" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="headImage">
<j-upload v-model="model.headImage" ></j-upload>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
</a-spin>
</template>
<script>
import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
export default {
name: 'CityHomeForm',
components: {
},
props: {
//
disabled: {
type: Boolean,
default: false,
required: false
}
},
data () {
return {
model:{
},
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
confirmLoading: false,
validatorRules: {
},
url: {
add: "/cityHome/cityHome/add",
edit: "/cityHome/cityHome/edit",
queryById: "/cityHome/cityHome/queryById"
}
}
},
computed: {
formDisabled(){
return this.disabled
},
},
created () {
//model
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
add () {
this.edit(this.modelDefault);
},
edit (record) {
this.model = Object.assign({}, record);
this.visible = true;
},
submitForm () {
const that = this;
//
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true;
let httpurl = '';
let method = '';
if(!this.model.id){
httpurl+=this.url.add;
method = 'post';
}else{
httpurl+=this.url.edit;
method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
that.$message.success(res.message);
that.$emit('ok');
}else{
that.$message.warning(res.message);
}
}).finally(() => {
that.confirmLoading = false;
})
}
})
},
}
}
<template>
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row>
<a-col :span="24">
<a-form-model-item label="发布用户" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userId">
<j-search-select-tag v-model="model.userId" dict="han_hai_member,nick_name,id" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="所属区域" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="addId">
<j-search-select-tag v-model="model.addId" dict="city_addr,name,id" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="标题" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="title">
<a-input v-model="model.title" placeholder="请输入标题" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="备注" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="titleSub">
<a-textarea v-model="model.titleSub" rows="4" placeholder="请输入备注" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="图片" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="image">
<j-image-upload isMultiple v-model="model.image" ></j-image-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="租金" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="money">
<a-input v-model="model.money" placeholder="请输入租金" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="面积" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="crm">
<a-input v-model="model.crm" placeholder="请输入面积" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="楼层" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="floor">
<a-input v-model="model.floor" placeholder="请输入楼层" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="朝向" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="face">
<a-input v-model="model.face" placeholder="请输入朝向" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="装修" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="decoration">
<a-input v-model="model.decoration" placeholder="请输入装修" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="付款" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="payment">
<a-input v-model="model.payment" placeholder="请输入付款" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="电梯" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="lift">
<a-input v-model="model.lift" placeholder="请输入电梯" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="交付" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="deliver">
<a-input v-model="model.deliver" placeholder="请输入交付" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="看房" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="showings">
<a-input v-model="model.showings" placeholder="请输入看房" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="电话" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="phone">
<a-input v-model="model.phone" placeholder="请输入电话" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="address">
<a-textarea v-model="model.address" rows="4" placeholder="请输入地址" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="浏览量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="num">
<a-input v-model="model.num" placeholder="请输入浏览量" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="经度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="longitude">
<a-input v-model="model.longitude" placeholder="请输入经度" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="纬度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="latitude">
<a-input v-model="model.latitude" placeholder="请输入纬度" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="地图选择位置" :labelCol="labelCol" :wrapperCol="wrapperCol">
<TencentMapPicker
:latitude="model.latitude"
:longitude="model.longitude"
@onLocationSelected="handleLocationSelected"
/>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="一室一卫" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="home">
<a-input v-model="model.home" placeholder="请输入一室一卫" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="优选" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isGood">
<a-input v-model="model.isGood" placeholder="请输入优选" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="低价" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isMinPrice">
<a-input v-model="model.isMinPrice" placeholder="请输入低价" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="发布人头像" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="headImage">
<j-upload v-model="model.headImage" ></j-upload>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
</a-spin>
</template>
<script>
import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
import TencentMapPicker from './TencentMapPicker.vue';
export default {
name: 'CityHomeForm',
components: {
TencentMapPicker
},
props: {
//
disabled: {
type: Boolean,
default: false,
required: false
}
},
data () {
return {
model:{
},
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
confirmLoading: false,
validatorRules: {
},
url: {
add: "/cityHome/cityHome/add",
edit: "/cityHome/cityHome/edit",
queryById: "/cityHome/cityHome/queryById"
}
}
},
computed: {
formDisabled(){
return this.disabled
},
},
created () {
//model
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
handleLocationSelected({latitude, longitude}) {
console.log('event11',latitude, longitude)
this.model.latitude = latitude;
this.model.longitude = longitude;
},
add () {
this.edit(this.modelDefault);
},
edit (record) {
this.model = Object.assign({}, record);
this.visible = true;
},
submitForm () {
const that = this;
//
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true;
let httpurl = '';
let method = '';
if(!this.model.id){
httpurl+=this.url.add;
method = 'post';
}else{
httpurl+=this.url.edit;
method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
that.$message.success(res.message);
that.$emit('ok');
}else{
that.$message.warning(res.message);
}
}).finally(() => {
that.confirmLoading = false;
})
}
})
},
}
}
</script>

+ 2
- 2
admin-hanhai-vue/src/views/cityHome/modules/TencentMapPicker.vue View File

@ -52,8 +52,8 @@ export default {
return {
searchValue: '', //
form: {
longitude: 116.397128,
latitude: 39.916527
longitude: 111.5742733827758,
latitude: 25.182807000000015
},
kwData:[]
}


+ 213
- 188
admin-hanhai-vue/src/views/cityJob/modules/CityJobForm.vue View File

@ -1,189 +1,214 @@
<template>
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row>
<a-col :span="24">
<a-form-model-item label="标题" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="title">
<a-input v-model="model.title" placeholder="请输入标题" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="发布人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userId">
<j-search-select-tag v-model="model.userId" dict="han_hai_member,nick_name,id" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="工资" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="minPrice">
<a-input v-model="model.minPrice" placeholder="请输入工资" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="address">
<a-input v-model="model.address" placeholder="请输入地址" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="招聘要求" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="school">
<a-textarea v-model="model.school" rows="4" placeholder="请输入招聘要求" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="岗位详情" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="jobDetails">
<a-textarea v-model="model.jobDetails" rows="4" placeholder="请输入岗位详情" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="经度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="latitude">
<a-input v-model="model.latitude" placeholder="请输入经度" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="纬度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="longitude">
<a-input v-model="model.longitude" placeholder="请输入纬度" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="工作年限" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workYear">
<a-input v-model="model.workYear" placeholder="请输入工作年限" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="标签列表" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="iconText">
<a-input v-model="model.iconText" placeholder="请输入标签列表" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="联系人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userName">
<a-input v-model="model.userName" placeholder="请输入联系人" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="联系电话" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userPhone">
<a-input v-model="model.userPhone" placeholder="请输入联系电话" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="职位描述" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="jobContext">
<a-textarea v-model="model.jobContext" rows="4" placeholder="请输入职位描述" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="公司介绍" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="gsContext">
<a-textarea v-model="model.gsContext" rows="4" placeholder="请输入公司介绍" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="招聘公司" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="company">
<a-input v-model="model.company" placeholder="请输入招聘公司" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="认证情况" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isCardOpen">
<a-input v-model="model.isCardOpen" placeholder="请输入认证情况" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="假日福利" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="iconTitle">
<a-input v-model="model.iconTitle" placeholder="请输入假日福利" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="所属乡镇" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="city">
<j-search-select-tag v-model="model.city" dict="city_addr,name,id" />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
</a-spin>
</template>
<script>
import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
export default {
name: 'CityJobForm',
components: {
},
props: {
//
disabled: {
type: Boolean,
default: false,
required: false
}
},
data () {
return {
model:{
},
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
confirmLoading: false,
validatorRules: {
},
url: {
add: "/cityJob/cityJob/add",
edit: "/cityJob/cityJob/edit",
queryById: "/cityJob/cityJob/queryById"
}
}
},
computed: {
formDisabled(){
return this.disabled
},
},
created () {
//model
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
add () {
this.edit(this.modelDefault);
},
edit (record) {
this.model = Object.assign({}, record);
this.visible = true;
},
submitForm () {
const that = this;
//
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true;
let httpurl = '';
let method = '';
if(!this.model.id){
httpurl+=this.url.add;
method = 'post';
}else{
httpurl+=this.url.edit;
method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
that.$message.success(res.message);
that.$emit('ok');
}else{
that.$message.warning(res.message);
}
}).finally(() => {
that.confirmLoading = false;
})
}
})
},
}
}
<template>
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row>
<a-col :span="24">
<a-form-model-item label="标题" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="title">
<a-input v-model="model.title" placeholder="请输入标题" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="发布人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userId">
<j-search-select-tag v-model="model.userId" dict="han_hai_member,nick_name,id" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="工资" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="minPrice">
<a-input v-model="model.minPrice" placeholder="请输入工资" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="address">
<a-input v-model="model.address" placeholder="请输入地址" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="招聘要求" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="school">
<a-textarea v-model="model.school" rows="4" placeholder="请输入招聘要求" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="岗位详情" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="jobDetails">
<a-textarea v-model="model.jobDetails" rows="4" placeholder="请输入岗位详情" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="经度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="latitude">
<a-input v-model="model.latitude" placeholder="请输入经度" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="纬度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="longitude">
<a-input v-model="model.longitude" placeholder="请输入纬度" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="地图选择位置" :labelCol="labelCol" :wrapperCol="wrapperCol">
<TencentMapPicker
:latitude="model.latitude"
:longitude="model.longitude"
@onLocationSelected="handleLocationSelected"
/>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="工作年限" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workYear">
<a-input v-model="model.workYear" placeholder="请输入工作年限" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="标签列表" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="iconText">
<a-input v-model="model.iconText" placeholder="请输入标签列表" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="联系人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userName">
<a-input v-model="model.userName" placeholder="请输入联系人" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="联系电话" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userPhone">
<a-input v-model="model.userPhone" placeholder="请输入联系电话" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="职位描述" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="jobContext">
<a-textarea v-model="model.jobContext" rows="4" placeholder="请输入职位描述" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="公司介绍" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="gsContext">
<a-textarea v-model="model.gsContext" rows="4" placeholder="请输入公司介绍" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="招聘公司" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="company">
<a-input v-model="model.company" placeholder="请输入招聘公司" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="认证情况" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isCardOpen">
<a-input v-model="model.isCardOpen" placeholder="请输入认证情况" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="假日福利" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="iconTitle">
<a-input v-model="model.iconTitle" placeholder="请输入假日福利" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="所属乡镇" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="city">
<j-search-select-tag v-model="model.city" dict="city_addr,name,id" />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
</a-spin>
</template>
<script>
import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
import TencentMapPicker from './TencentMapPicker.vue';
export default {
name: 'CityJobForm',
components: {
TencentMapPicker
},
props: {
//
disabled: {
type: Boolean,
default: false,
required: false
}
},
data () {
return {
model:{
},
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
confirmLoading: false,
validatorRules: {
},
url: {
add: "/cityJob/cityJob/add",
edit: "/cityJob/cityJob/edit",
queryById: "/cityJob/cityJob/queryById"
}
}
},
computed: {
formDisabled(){
return this.disabled
},
},
created () {
//model
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
handleLocationSelected({latitude, longitude}) {
console.log('event11',latitude, longitude)
this.model.latitude = latitude;
this.model.longitude = longitude;
},
add () {
this.edit(this.modelDefault);
},
edit (record) {
this.model = Object.assign({}, record);
this.visible = true;
},
submitForm () {
const that = this;
//
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true;
let httpurl = '';
let method = '';
if(!this.model.id){
httpurl+=this.url.add;
method = 'post';
}else{
httpurl+=this.url.edit;
method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
that.$message.success(res.message);
that.$emit('ok');
}else{
that.$message.warning(res.message);
}
}).finally(() => {
that.confirmLoading = false;
})
}
})
},
}
}
</script>

+ 2
- 2
admin-hanhai-vue/src/views/cityJob/modules/TencentMapPicker.vue View File

@ -52,8 +52,8 @@ export default {
return {
searchValue: '', //
form: {
longitude: 116.397128,
latitude: 39.916527
longitude: 111.5742733827758,
latitude: 25.182807000000015
},
kwData:[]
}


+ 263
- 252
admin-hanhai-vue/src/views/cityMoneyLog/CityMoneyLogList.vue View File

@ -1,253 +1,264 @@
<template>
<a-card :bordered="false">
<!-- 查询区域 -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="状态">
<j-dict-select-tag placeholder="请选择状态" v-model="queryParam.state" dictCode="money_pay_state"/>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="类型">
<j-dict-select-tag placeholder="请选择类型" v-model="queryParam.type" dictCode="money_pay"/>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
{{ toggleSearchStatus ? '收起' : '展开' }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
</span>
</a-col>
</a-row>
</a-form>
</div>
<!-- 查询区域-END -->
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('佣金流水')">导出</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
<a-button type="primary" icon="import">导入</a-button>
</a-upload>
<!-- 高级查询区域 -->
<j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
<a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay">
<a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
</a-menu>
<a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
</a-dropdown>
</div>
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<a-table
ref="table"
size="middle"
:scroll="{x:true}"
bordered
rowKey="id"
:columns="columns"
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
class="j-table-force-nowrap"
@change="handleTableChange">
<template slot="htmlSlot" slot-scope="text">
<div v-html="text"></div>
</template>
<template slot="imgSlot" slot-scope="text,record">
<span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
<img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
</template>
<template slot="fileSlot" slot-scope="text">
<span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
<a-button
v-else
:ghost="true"
type="primary"
icon="download"
size="small"
@click="downloadFile(text)">
下载
</a-button>
</template>
<span slot="action" slot-scope="text, record">
<a @click="handleEdit(record)">提现审核</a>
<!-- <a-divider type="vertical" />-->
<!-- <a-dropdown>-->
<!-- <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>-->
<!-- <a-menu slot="overlay">-->
<!-- <a-menu-item>-->
<!-- <a @click="handleDetail(record)">详情</a>-->
<!-- </a-menu-item>-->
<!-- <a-menu-item>-->
<!-- <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">-->
<!-- <a>删除</a>-->
<!-- </a-popconfirm>-->
<!-- </a-menu-item>-->
<!-- </a-menu>-->
<!-- </a-dropdown>-->
</span>
</a-table>
</div>
<city-money-log-modal ref="modalForm" @ok="modalFormOk"></city-money-log-modal>
</a-card>
</template>
<script>
import '@/assets/less/TableExpand.less'
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import CityMoneyLogModal from './modules/CityMoneyLogModal'
import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
export default {
name: 'CityMoneyLogList',
mixins:[JeecgListMixin, mixinDevice],
components: {
CityMoneyLogModal
},
data () {
return {
description: '佣金流水管理页面',
//
columns: [
{
title: '#',
dataIndex: '',
key:'rowIndex',
width:60,
align:"center",
customRender:function (t,r,index) {
return parseInt(index)+1;
}
},
{
title:'创建日期',
align:"center",
sorter: true,
dataIndex: 'createTime'
},
{
title:'用户',
align:"center",
dataIndex: 'userId_dictText'
},
{
title:'提现者姓名',
align:"center",
dataIndex: 'name'
},
{
title:'流水备注',
align:"center",
dataIndex: 'title'
},
{
title:'金额',
align:"center",
dataIndex: 'price'
},
{
title:'状态',
align:"center",
dataIndex: 'state_dictText'
},
{
title:'到账时间',
align:"center",
dataIndex: 'successtime'
},
{
title:'类型',
align:"center",
dataIndex: 'type_dictText'
},
{
title:'回调',
align:"center",
dataIndex: 'packageInfo'
},
{
title:'标识',
align:"center",
dataIndex: 'outBatchNo'
},
{
title:'内容',
align:"center",
dataIndex: 'batchId'
},
{
title: '操作',
dataIndex: 'action',
align:"center",
fixed:"right",
width:147,
scopedSlots: { customRender: 'action' }
}
],
url: {
list: "/cityMoneyLog/cityMoneyLog/list",
delete: "/cityMoneyLog/cityMoneyLog/delete",
deleteBatch: "/cityMoneyLog/cityMoneyLog/deleteBatch",
exportXlsUrl: "/cityMoneyLog/cityMoneyLog/exportXls",
importExcelUrl: "cityMoneyLog/cityMoneyLog/importExcel",
},
dictOptions:{},
superFieldList:[],
}
},
created() {
this.getSuperFieldList();
},
computed: {
importExcelUrl: function(){
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
},
},
methods: {
initDictConfig(){
},
getSuperFieldList(){
let fieldList=[];
fieldList.push({type:'datetime',value:'createTime',text:'创建日期'})
fieldList.push({type:'sel_search',value:'userId',text:'用户',dictTable:"han_hai_member", dictText:'nick_name', dictCode:'id'})
fieldList.push({type:'string',value:'name',text:'提现者姓名',dictCode:''})
fieldList.push({type:'string',value:'title',text:'流水备注',dictCode:''})
fieldList.push({type:'BigDecimal',value:'price',text:'金额',dictCode:''})
fieldList.push({type:'int',value:'state',text:'状态',dictCode:'money_pay_state'})
fieldList.push({type:'datetime',value:'successtime',text:'到账时间'})
fieldList.push({type:'int',value:'type',text:'类型',dictCode:'money_pay'})
fieldList.push({type:'Text',value:'packageInfo',text:'回调',dictCode:''})
fieldList.push({type:'Text',value:'outBatchNo',text:'标识',dictCode:''})
fieldList.push({type:'Text',value:'batchId',text:'内容',dictCode:''})
this.superFieldList = fieldList
}
}
}
</script>
<style scoped>
@import '~@assets/less/common.less';
<template>
<a-card :bordered="false">
<!-- 查询区域 -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="状态">
<j-dict-select-tag placeholder="请选择状态" v-model="queryParam.state" dictCode="money_pay_state"/>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="姓名">
<a-input placeholder="请输入姓名" v-model="queryParam.name" dictCode="name"/>
</a-form-item>
</a-col>
<!-- <a-col :xl="6" :lg="7" :md="8" :sm="24">-->
<!-- <a-form-item label="类型">-->
<!-- <j-dict-select-tag placeholder="请选择类型" v-model="queryParam.type" dictCode="money_pay"/>-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
{{ toggleSearchStatus ? '收起' : '展开' }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
</span>
</a-col>
</a-row>
</a-form>
</div>
<!-- 查询区域-END -->
<!-- 操作按钮区域 -->
<!-- <div class="table-operator">-->
<!-- <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>-->
<!-- <a-button type="primary" icon="download" @click="handleExportXls('佣金流水')">导出</a-button>-->
<!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">-->
<!-- <a-button type="primary" icon="import">导入</a-button>-->
<!-- </a-upload>-->
<!-- &lt;!&ndash; 高级查询区域 &ndash;&gt;-->
<!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>-->
<!-- <a-dropdown v-if="selectedRowKeys.length > 0">-->
<!-- <a-menu slot="overlay">-->
<!-- <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>-->
<!-- </a-menu>-->
<!-- <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>-->
<!-- </a-dropdown>-->
<!-- </div>-->
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<a-table
ref="table"
size="middle"
:scroll="{x:true}"
bordered
rowKey="id"
:columns="columns"
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
class="j-table-force-nowrap"
@change="handleTableChange">
<template slot="htmlSlot" slot-scope="text">
<div v-html="text"></div>
</template>
<template slot="imgSlot" slot-scope="text,record">
<span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
<img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
</template>
<template slot="fileSlot" slot-scope="text">
<span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
<a-button
v-else
:ghost="true"
type="primary"
icon="download"
size="small"
@click="downloadFile(text)">
下载
</a-button>
</template>
<span slot="action" slot-scope="text, record">
<a @click="handleEdit(record)">提现审核</a>
<!-- <a-divider type="vertical" />-->
<!-- <a-dropdown>-->
<!-- <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>-->
<!-- <a-menu slot="overlay">-->
<!-- <a-menu-item>-->
<!-- <a @click="handleDetail(record)">详情</a>-->
<!-- </a-menu-item>-->
<!-- <a-menu-item>-->
<!-- <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">-->
<!-- <a>删除</a>-->
<!-- </a-popconfirm>-->
<!-- </a-menu-item>-->
<!-- </a-menu>-->
<!-- </a-dropdown>-->
</span>
</a-table>
</div>
<city-money-log-modal ref="modalForm" @ok="modalFormOk"></city-money-log-modal>
</a-card>
</template>
<script>
import '@/assets/less/TableExpand.less'
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import CityMoneyLogModal from './modules/CityMoneyLogModal'
import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
export default {
name: 'CityMoneyLogList',
mixins:[JeecgListMixin, mixinDevice],
components: {
CityMoneyLogModal
},
data () {
return {
description: '佣金流水管理页面',
//
columns: [
{
title: '#',
dataIndex: '',
key:'rowIndex',
width:60,
align:"center",
customRender:function (t,r,index) {
return parseInt(index)+1;
}
},
{
title:'创建日期',
align:"center",
sorter: true,
dataIndex: 'createTime'
},
{
title:'到账时间',
align:"center",
dataIndex: 'successtime'
},
{
title:'用户昵称',
align:"center",
dataIndex: 'userId_dictText'
},
{
title:'姓名',
align:"center",
dataIndex: 'name'
},
// {
// title:'',
// align:"center",
// dataIndex: 'title'
// },
{
title:'金额(元)',
align:"center",
dataIndex: 'price'
},
{
title:'到账金额(元)',
align:"center",
dataIndex: 'getPrice'
},
{
title:'状态',
align:"center",
dataIndex: 'state_dictText'
},
{
title:'类型',
align:"center",
dataIndex: 'type_dictText'
},
// {
// title:'',
// align:"center",
// dataIndex: 'packageInfo'
// },
// {
// title:'',
// align:"center",
// dataIndex: 'outBatchNo'
// },
// {
// title:'',
// align:"center",
// dataIndex: 'batchId'
// },
{
title: '操作',
dataIndex: 'action',
align:"center",
fixed:"right",
width:147,
scopedSlots: { customRender: 'action' }
}
],
url: {
list: "/cityMoneyLog/cityMoneyLog/list",
delete: "/cityMoneyLog/cityMoneyLog/delete",
deleteBatch: "/cityMoneyLog/cityMoneyLog/deleteBatch",
exportXlsUrl: "/cityMoneyLog/cityMoneyLog/exportXls",
importExcelUrl: "cityMoneyLog/cityMoneyLog/importExcel",
},
dictOptions:{},
superFieldList:[],
}
},
created() {
this.getSuperFieldList();
},
computed: {
importExcelUrl: function(){
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
},
},
methods: {
initDictConfig(){
},
getSuperFieldList(){
let fieldList=[];
fieldList.push({type:'datetime',value:'createTime',text:'创建日期'})
fieldList.push({type:'sel_search',value:'userId',text:'用户',dictTable:"han_hai_member", dictText:'nick_name', dictCode:'id'})
fieldList.push({type:'string',value:'name',text:'提现者姓名',dictCode:''})
fieldList.push({type:'string',value:'title',text:'流水备注',dictCode:''})
fieldList.push({type:'BigDecimal',value:'price',text:'金额',dictCode:''})
fieldList.push({type:'int',value:'state',text:'状态',dictCode:'money_pay_state'})
fieldList.push({type:'datetime',value:'successtime',text:'到账时间'})
fieldList.push({type:'int',value:'type',text:'类型',dictCode:'money_pay'})
fieldList.push({type:'Text',value:'packageInfo',text:'回调',dictCode:''})
fieldList.push({type:'Text',value:'outBatchNo',text:'标识',dictCode:''})
fieldList.push({type:'Text',value:'batchId',text:'内容',dictCode:''})
this.superFieldList = fieldList
}
}
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>

+ 151
- 148
admin-hanhai-vue/src/views/cityMoneyLog/modules/CityMoneyLogForm.vue View File

@ -1,149 +1,152 @@
<template>
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row>
<a-col :span="24">
<a-form-model-item label="用户" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userId">
<j-search-select-tag v-model="model.userId" dict="han_hai_member,nick_name,id" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="提现者姓名" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="name">
<a-input v-model="model.name" placeholder="请输入提现者姓名" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="流水备注" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="title">
<a-input v-model="model.title" placeholder="请输入流水备注" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="金额" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="price">
<a-input-number v-model="model.price" placeholder="请输入金额" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="状态" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="state">
<j-dict-select-tag type="list" v-model="model.state" dictCode="money_pay_state" placeholder="请选择状态" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="到账时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="successtime">
<j-date placeholder="请选择到账时间" v-model="model.successtime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="type">
<j-dict-select-tag type="list" v-model="model.type" dictCode="money_pay" placeholder="请选择类型" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="回调" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="packageInfo">
<a-input v-model="model.packageInfo" placeholder="请输入回调" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="标识" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="outBatchNo">
<a-input v-model="model.outBatchNo" placeholder="请输入标识" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="内容" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="batchId">
<a-input v-model="model.batchId" placeholder="请输入内容" ></a-input>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
</a-spin>
</template>
<script>
import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
export default {
name: 'CityMoneyLogForm',
components: {
},
props: {
//
disabled: {
type: Boolean,
default: false,
required: false
}
},
data () {
return {
model:{
},
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
confirmLoading: false,
validatorRules: {
},
url: {
add: "/cityMoneyLog/cityMoneyLog/add",
edit: "/cityMoneyLog/cityMoneyLog/edit",
queryById: "/cityMoneyLog/cityMoneyLog/queryById"
}
}
},
computed: {
formDisabled(){
return this.disabled
},
},
created () {
//model
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
add () {
this.edit(this.modelDefault);
},
edit (record) {
this.model = Object.assign({}, record);
this.visible = true;
},
submitForm () {
const that = this;
//
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true;
let httpurl = '';
let method = '';
if(!this.model.id){
httpurl+=this.url.add;
method = 'post';
}else{
httpurl+=this.url.edit;
method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
that.$message.success(res.message);
that.$emit('ok');
}else{
that.$message.warning(res.message);
}
}).finally(() => {
that.confirmLoading = false;
})
}
})
},
}
}
<template>
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row>
<a-col :span="24">
<a-form-model-item label="状态" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="state">
<j-dict-select-tag type="list" v-model="model.state" dictCode="money_pay_state" placeholder="请选择状态" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="用户" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userId">
<j-search-select-tag disabled v-model="model.userId" dict="han_hai_member,nick_name,id" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="提现者姓名" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="name">
<a-input disabled v-model="model.name" placeholder="请输入提现者姓名" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="流水备注" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="title">
<a-input disabled v-model="model.title" placeholder="请输入流水备注" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="金额" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="price">
<a-input-number disabled v-model="model.price" placeholder="请输入金额" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="到账时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="successtime">
<j-date disabled placeholder="请选择到账时间" v-model="model.successtime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="type">
<j-dict-select-tag disabled type="list" v-model="model.type" dictCode="money_pay" placeholder="请选择类型" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="回调" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="packageInfo">
<a-input disabled v-model="model.packageInfo" placeholder="请输入回调" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="标识" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="outBatchNo">
<a-input disabled v-model="model.outBatchNo" placeholder="请输入标识" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="内容" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="batchId">
<a-input disabled v-model="model.batchId" placeholder="请输入内容" ></a-input>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
</a-spin>
</template>
<script>
import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
import TencentMapPicker from "@views/CityJd/modules/TencentMapPicker";
export default {
name: 'CityMoneyLogForm',
components: {
TencentMapPicker
},
props: {
//
disabled: {
type: Boolean,
default: false,
required: false
}
},
data () {
return {
model:{
},
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
confirmLoading: false,
validatorRules: {
},
url: {
add: "/cityMoneyLog/cityMoneyLog/add",
edit: "/cityMoneyLog/cityMoneyLog/edit",
queryById: "/cityMoneyLog/cityMoneyLog/queryById"
}
}
},
computed: {
formDisabled(){
return this.disabled
},
},
created () {
//model
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
add () {
this.edit(this.modelDefault);
},
edit (record) {
this.model = Object.assign({}, record);
this.visible = true;
},
submitForm () {
const that = this;
//
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true;
let httpurl = '';
let method = '';
if(!this.model.id){
httpurl+=this.url.add;
method = 'post';
}else{
httpurl+=this.url.edit;
method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
that.$message.success(res.message);
that.$emit('ok');
}else{
that.$message.warning(res.message);
}
}).finally(() => {
that.confirmLoading = false;
})
}
})
},
}
}
</script>

+ 234
- 213
admin-hanhai-vue/src/views/cityShop/modules/CityShopForm.vue View File

@ -1,214 +1,235 @@
<template>
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row>
<a-col :span="24">
<a-form-model-item label="商户名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="title">
<a-input v-model="model.title" placeholder="请输入商户名称" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="商户门头" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="image">
<j-image-upload isMultiple v-model="model.image" ></j-image-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="商户LOGO" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="logoImage">
<j-image-upload isMultiple v-model="model.logoImage" ></j-image-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="商户简介" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="titleSub">
<a-textarea v-model="model.titleSub" rows="4" placeholder="请输入商户简介" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="商户标签" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="iconSub">
<a-input v-model="model.iconSub" placeholder="请输入商户标签" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="营业时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workTime">
<a-input v-model="model.workTime" placeholder="请输入营业时间" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="商户地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="address">
<a-textarea v-model="model.address" rows="4" placeholder="请输入商户地址" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="商户介绍" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="details">
<a-textarea v-model="model.details" rows="4" placeholder="请输入商户介绍" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="商户图片" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="detailsImage">
<j-image-upload isMultiple v-model="model.detailsImage" ></j-image-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="排序" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="sort">
<a-input-number v-model="model.sort" placeholder="请输入排序" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="浏览量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isBrowse">
<a-input-number v-model="model.isBrowse" placeholder="请输入浏览量" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="评论量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isComment">
<a-input-number v-model="model.isComment" placeholder="请输入评论量" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="经度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="longitude">
<a-input v-model="model.longitude" placeholder="请输入经度" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="纬度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="latitude">
<a-input v-model="model.latitude" placeholder="请输入纬度" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="是否营业" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isOpen">
<j-switch v-model="model.isOpen" ></j-switch>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="关联店主" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="shopUser">
<j-search-select-tag v-model="model.shopUser" dict="han_hai_member,nick_name,id" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="店主姓名" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="shopName">
<a-input v-model="model.shopName" placeholder="请输入店主姓名" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="店主电话" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="shopPhone">
<a-input v-model="model.shopPhone" placeholder="请输入店主电话" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="店主图片" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="shopImage">
<j-image-upload isMultiple v-model="model.shopImage" ></j-image-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="是否配送" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="pay">
<j-switch v-model="model.pay" ></j-switch>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="二维码背景图片" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qrCodeBg">
<j-image-upload isMultiple v-model="model.qrCodeBg" ></j-image-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="二维码位置x" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qrCodeX">
<a-input-number v-model="model.qrCodeX" placeholder="请输入二维码位置x" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="二维码位置y" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qrCodeY">
<a-input-number v-model="model.qrCodeY" placeholder="请输入二维码位置y" style="width: 100%" />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
</a-spin>
</template>
<script>
import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
export default {
name: 'CityShopForm',
components: {
},
props: {
//
disabled: {
type: Boolean,
default: false,
required: false
}
},
data () {
return {
model:{
},
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
confirmLoading: false,
validatorRules: {
},
url: {
add: "/cityShop/cityShop/add",
edit: "/cityShop/cityShop/edit",
queryById: "/cityShop/cityShop/queryById"
}
}
},
computed: {
formDisabled(){
return this.disabled
},
},
created () {
//model
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
add () {
this.edit(this.modelDefault);
},
edit (record) {
this.model = Object.assign({}, record);
this.visible = true;
},
submitForm () {
const that = this;
//
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true;
let httpurl = '';
let method = '';
if(!this.model.id){
httpurl+=this.url.add;
method = 'post';
}else{
httpurl+=this.url.edit;
method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
that.$message.success(res.message);
that.$emit('ok');
}else{
that.$message.warning(res.message);
}
}).finally(() => {
that.confirmLoading = false;
})
}
})
},
}
}
<template>
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row>
<a-col :span="24">
<a-form-model-item label="商户名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="title">
<a-input v-model="model.title" placeholder="请输入商户名称" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="商户门头" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="image">
<j-image-upload isMultiple v-model="model.image" ></j-image-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="商户LOGO" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="logoImage">
<j-image-upload isMultiple v-model="model.logoImage" ></j-image-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="商户简介" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="titleSub">
<a-textarea v-model="model.titleSub" rows="4" placeholder="请输入商户简介" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="商户标签" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="iconSub">
<a-input v-model="model.iconSub" placeholder="请输入商户标签" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="营业时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workTime">
<a-input v-model="model.workTime" placeholder="请输入营业时间" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="商户地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="address">
<a-textarea v-model="model.address" rows="4" placeholder="请输入商户地址" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="商户介绍" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="details">
<a-textarea v-model="model.details" rows="4" placeholder="请输入商户介绍" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="商户图片" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="detailsImage">
<j-image-upload isMultiple v-model="model.detailsImage" ></j-image-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="排序" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="sort">
<a-input-number v-model="model.sort" placeholder="请输入排序" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="浏览量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isBrowse">
<a-input-number v-model="model.isBrowse" placeholder="请输入浏览量" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="评论量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isComment">
<a-input-number v-model="model.isComment" placeholder="请输入评论量" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="经度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="longitude">
<a-input v-model="model.longitude" placeholder="请输入经度" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="纬度" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="latitude">
<a-input v-model="model.latitude" placeholder="请输入纬度" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="地图选择位置" :labelCol="labelCol" :wrapperCol="wrapperCol">
<TencentMapPicker
:latitude="model.latitude"
:longitude="model.longitude"
@onLocationSelected="handleLocationSelected"
/>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="是否营业" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isOpen">
<j-switch v-model="model.isOpen" ></j-switch>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="关联店主" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="shopUser">
<j-search-select-tag v-model="model.shopUser" dict="han_hai_member,nick_name,id" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="店主姓名" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="shopName">
<a-input v-model="model.shopName" placeholder="请输入店主姓名" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="店主电话" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="shopPhone">
<a-input v-model="model.shopPhone" placeholder="请输入店主电话" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="店主图片" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="shopImage">
<j-image-upload isMultiple v-model="model.shopImage" ></j-image-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="是否配送" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="pay">
<j-switch v-model="model.pay" ></j-switch>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="二维码背景图片" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qrCodeBg">
<j-image-upload isMultiple v-model="model.qrCodeBg" ></j-image-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="二维码位置x" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qrCodeX">
<a-input-number v-model="model.qrCodeX" placeholder="请输入二维码位置x" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="二维码位置y" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qrCodeY">
<a-input-number v-model="model.qrCodeY" placeholder="请输入二维码位置y" style="width: 100%" />
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
</a-spin>
</template>
<script>
import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
import TencentMapPicker from './TencentMapPicker.vue';
export default {
name: 'CityShopForm',
components: {
TencentMapPicker
},
props: {
//
disabled: {
type: Boolean,
default: false,
required: false
}
},
data () {
return {
model:{
},
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
confirmLoading: false,
validatorRules: {
},
url: {
add: "/cityShop/cityShop/add",
edit: "/cityShop/cityShop/edit",
queryById: "/cityShop/cityShop/queryById"
}
}
},
computed: {
formDisabled(){
return this.disabled
},
},
created () {
//model
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
handleLocationSelected({latitude, longitude}) {
console.log('event11',latitude, longitude)
this.model.latitude = latitude;
this.model.longitude = longitude;
},
add () {
this.edit(this.modelDefault);
},
edit (record) {
this.model = Object.assign({}, record);
this.visible = true;
},
submitForm () {
const that = this;
//
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true;
let httpurl = '';
let method = '';
if(!this.model.id){
httpurl+=this.url.add;
method = 'post';
}else{
httpurl+=this.url.edit;
method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
that.$message.success(res.message);
that.$emit('ok');
}else{
that.$message.warning(res.message);
}
}).finally(() => {
that.confirmLoading = false;
})
}
})
},
}
}
</script>

+ 2
- 2
admin-hanhai-vue/src/views/cityShop/modules/TencentMapPicker.vue View File

@ -52,8 +52,8 @@ export default {
return {
searchValue: '', //
form: {
longitude: 116.397128,
latitude: 39.916527
longitude: 111.5742733827758,
latitude: 25.182807000000015
},
kwData:[]
}


+ 11679
- 12040
admin-hanhai-vue/yarn.lock
File diff suppressed because it is too large
View File


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityHome/controller/CityHomeController.java View File

@ -39,7 +39,7 @@ import org.jeecg.common.aspect.annotation.AutoLog;
/**
* @Description: 租房信息表
* @Author: jeecg-boot
* @Date: 2024-11-07
* @Date: 2025-10-30
* @Version: V1.0
*/
@Api(tags="租房信息表")


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityHome/entity/CityHome.java View File

@ -20,7 +20,7 @@ import lombok.experimental.Accessors;
/**
* @Description: 租房信息表
* @Author: jeecg-boot
* @Date: 2024-11-07
* @Date: 2025-10-30
* @Version: V1.0
*/
@Data


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityHome/mapper/CityHomeMapper.java View File

@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 租房信息表
* @Author: jeecg-boot
* @Date: 2024-11-07
* @Date: 2025-10-30
* @Version: V1.0
*/
public interface CityHomeMapper extends BaseMapper<CityHome> {


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityHome/service/ICityHomeService.java View File

@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description: 租房信息表
* @Author: jeecg-boot
* @Date: 2024-11-07
* @Date: 2025-10-30
* @Version: V1.0
*/
public interface ICityHomeService extends IService<CityHome> {


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityHome/service/impl/CityHomeServiceImpl.java View File

@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 租房信息表
* @Author: jeecg-boot
* @Date: 2024-11-07
* @Date: 2025-10-30
* @Version: V1.0
*/
@Service


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityJob/controller/CityJobController.java View File

@ -39,7 +39,7 @@ import org.jeecg.common.aspect.annotation.AutoLog;
/**
* @Description: 工作信息表
* @Author: jeecg-boot
* @Date: 2024-11-13
* @Date: 2025-10-30
* @Version: V1.0
*/
@Api(tags="工作信息表")


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityJob/entity/CityJob.java View File

@ -20,7 +20,7 @@ import lombok.experimental.Accessors;
/**
* @Description: 工作信息表
* @Author: jeecg-boot
* @Date: 2024-11-13
* @Date: 2025-10-30
* @Version: V1.0
*/
@Data


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityJob/mapper/CityJobMapper.java View File

@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 工作信息表
* @Author: jeecg-boot
* @Date: 2024-11-13
* @Date: 2025-10-30
* @Version: V1.0
*/
public interface CityJobMapper extends BaseMapper<CityJob> {


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityJob/service/ICityJobService.java View File

@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description: 工作信息表
* @Author: jeecg-boot
* @Date: 2024-11-13
* @Date: 2025-10-30
* @Version: V1.0
*/
public interface ICityJobService extends IService<CityJob> {


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityJob/service/impl/CityJobServiceImpl.java View File

@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 工作信息表
* @Author: jeecg-boot
* @Date: 2024-11-13
* @Date: 2025-10-30
* @Version: V1.0
*/
@Service


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/controller/CityShopController.java View File

@ -39,7 +39,7 @@ import org.jeecg.common.aspect.annotation.AutoLog;
/**
* @Description: 商铺信息表
* @Author: jeecg-boot
* @Date: 2024-11-26
* @Date: 2025-10-30
* @Version: V1.0
*/
@Api(tags="商铺信息表")


+ 13
- 12
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/entity/CityShop.java View File

@ -20,7 +20,7 @@ import lombok.experimental.Accessors;
/**
* @Description: 商铺信息表
* @Author: jeecg-boot
* @Date: 2024-11-26
* @Date: 2025-10-30
* @Version: V1.0
*/
@Data
@ -108,7 +108,8 @@ public class CityShop implements Serializable {
@ApiModelProperty(value = "是否营业")
private java.lang.String isOpen;
/**关联店主*/
@Excel(name = "关联店主", width = 15)
@Excel(name = "关联店主", width = 15, dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id")
@Dict(dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id")
@ApiModelProperty(value = "关联店主")
private java.lang.String shopUser;
/**店主姓名*/
@ -123,20 +124,20 @@ public class CityShop implements Serializable {
@Excel(name = "店主图片", width = 15)
@ApiModelProperty(value = "店主图片")
private java.lang.String shopImage;
/**是否允许支付*/
@Excel(name = "是否允许支付", width = 15)
@ApiModelProperty(value = "是否允许支付")
/**是否配送*/
@Excel(name = "是否配送", width = 15)
@ApiModelProperty(value = "是否配送")
private java.lang.String pay;
/**二维码背景图片*/
@Excel(name = "二维码背景图片", width = 15)
/**二维码背景图片*/
@Excel(name = "二维码背景图片", width = 15)
@ApiModelProperty(value = "二维码背景图片")
private java.lang.String qrCodeBg;
/**二维码位置x*/
@Excel(name = "二维码位置x", width = 15)
/**二维码位置x*/
@Excel(name = "二维码位置x", width = 15)
@ApiModelProperty(value = "二维码位置x")
private java.lang.Integer qrCodeX;
/**二维码位置x*/
@Excel(name = "二维码位置x", width = 15)
@ApiModelProperty(value = "二维码位置x")
/**二维码位置y*/
@Excel(name = "二维码位置y", width = 15)
@ApiModelProperty(value = "二维码位置y")
private java.lang.Integer qrCodeY;
}

+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/mapper/CityShopMapper.java View File

@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 商铺信息表
* @Author: jeecg-boot
* @Date: 2024-11-26
* @Date: 2025-10-30
* @Version: V1.0
*/
public interface CityShopMapper extends BaseMapper<CityShop> {


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/service/ICityShopService.java View File

@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description: 商铺信息表
* @Author: jeecg-boot
* @Date: 2024-11-26
* @Date: 2025-10-30
* @Version: V1.0
*/
public interface ICityShopService extends IService<CityShop> {


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/service/impl/CityShopServiceImpl.java View File

@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 商铺信息表
* @Author: jeecg-boot
* @Date: 2024-11-26
* @Date: 2025-10-30
* @Version: V1.0
*/
@Service


+ 60
- 4
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/cityShop/vue3/CityShop.data.ts View File

@ -86,12 +86,15 @@ export const columns: BasicColumn[] = [
{
title: '是否营业',
align:"center",
dataIndex: 'isOpen'
dataIndex: 'isOpen',
customRender:({text}) => {
return render.renderSwitch(text, [{text:'是',value:'Y'},{text:'否',value:'N'}])
},
},
{
title: '关联店主',
align:"center",
dataIndex: 'shopUser'
dataIndex: 'shopUser_dictText'
},
{
title: '店主姓名',
@ -109,6 +112,30 @@ export const columns: BasicColumn[] = [
dataIndex: 'shopImage',
customRender:render.renderAvatar,
},
{
title: '是否配送',
align:"center",
dataIndex: 'pay',
customRender:({text}) => {
return render.renderSwitch(text, [{text:'是',value:'Y'},{text:'否',value:'N'}])
},
},
{
title: '二维码背景图片',
align:"center",
dataIndex: 'qrCodeBg',
customRender:render.renderAvatar,
},
{
title: '二维码位置x',
align:"center",
dataIndex: 'qrCodeX'
},
{
title: '二维码位置y',
align:"center",
dataIndex: 'qrCodeY'
},
];
//查询数据
export const searchFormSchema: FormSchema[] = [
@ -206,12 +233,17 @@ export const formSchema: FormSchema[] = [
{
label: '是否营业',
field: 'isOpen',
component: 'Input',
component: 'JSwitch',
componentProps:{
},
},
{
label: '关联店主',
field: 'shopUser',
component: 'Input',
component: 'JSearchSelect',
componentProps:{
dict:"han_hai_member,nick_name,id"
},
},
{
label: '店主姓名',
@ -230,4 +262,28 @@ export const formSchema: FormSchema[] = [
componentProps:{
},
},
{
label: '是否配送',
field: 'pay',
component: 'JSwitch',
componentProps:{
},
},
{
label: '二维码背景图片',
field: 'qrCodeBg',
component: 'JImageUpload',
componentProps:{
},
},
{
label: '二维码位置x',
field: 'qrCodeX',
component: 'InputNumber',
},
{
label: '二维码位置y',
field: 'qrCodeY',
component: 'InputNumber',
},
];

+ 4
- 8
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/citySignLog/entity/CitySignLog.java View File

@ -35,20 +35,16 @@ public class CitySignLog implements Serializable {
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**创建人*/
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
/**创建日期*/
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
/**更新日期*/
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**用户*/


Loading…
Cancel
Save