From 089bf5d2378b3c4a61d795b2a92bede2c193b771 Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Tue, 06 Jan 2026 11:22:58 +0800
Subject: [PATCH] 1
---
src/views/modules/us-spots/indexImg-add-or-update.vue | 359 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 359 insertions(+), 0 deletions(-)
diff --git a/src/views/modules/us-spots/indexImg-add-or-update.vue b/src/views/modules/us-spots/indexImg-add-or-update.vue
new file mode 100644
index 0000000..b64913d
--- /dev/null
+++ b/src/views/modules/us-spots/indexImg-add-or-update.vue
@@ -0,0 +1,359 @@
+<template>
+ <div class="mod-index-img">
+ <el-dialog :title="tittle"
+ :close-on-click-modal="false"
+ :visible.sync="visible"
+ @close = 'handClose'
+ >
+ <el-form :model="dataForm"
+ ref="dataForm"
+ :rules="dataRule"
+ label-width="100px">
+ <el-form-item v-if="row" label="用户名" prop="userName">
+ <el-input v-model="dataForm.userName" disabled
+ placeholder="用户名"></el-input>
+ </el-form-item>
+ <el-form-item v-if="userOption" label="" prop="">
+ <div class="green">
+ 1.多个UID请用英文逗号隔开</br>
+ 2.全选默认选择全部用户,如有重复,新增数据会覆盖已有用户数据
+ </div>
+ </el-form-item>
+ <el-row v-if="userOption">
+ <el-col :span="21"><el-form-item label="用户UID" prop="userCode">
+ <el-input v-model="dataForm.userCode" :disabled="row?true:false"
+ placeholder="用户UID" clearable></el-input>
+ </el-form-item ></el-col>
+ <el-col :span="1" style="margin-left:20px"> <el-checkbox border v-model="checked" @change="checkboxChanged">全选</el-checkbox></el-col>
+ </el-row>
+ <el-form-item v-else label="用户UID" prop="userCode">
+ <el-input v-model="dataForm.userCode" :disabled="row?true:false"
+ placeholder="用户UID"></el-input>
+
+ </el-form-item>
+ <el-form-item label="类型">
+ <el-select v-model="options.value" @change="changeVal"
+ placeholder="请选择">
+ <el-option v-for="item in options"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="备注" prop="">
+ <el-input
+ type="textarea"
+ placeholder="请输入内容"
+ v-model="dataForm.remark"
+ maxlength="500"
+ :autosize="{ minRows: 8, maxRows: 8 }"
+ show-word-limit
+ >
+ </el-input>
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="visible = false">取消</el-button>
+ <el-button type="primary" @click="dataFormSubmit()" v-loading="dataListLoading">确定</el-button>
+ </span>
+ </el-dialog>
+ <!-- 商品选择弹窗-->
+ <prods-select v-if="prodsSelectVisible"
+ ref="prodsSelect"
+ :isSingle="true"
+ @refreshSelectProds="selectCouponProds"></prods-select>
+ </div>
+</template>
+
+<script>
+import PicUpload from '@/components/pic-upload'
+import ProdsSelect from '@/components/prods-select'
+import { Debounce } from '@/utils/debounce'
+export default {
+ data () {
+ return {
+ dataForm: {
+ userCode: '',
+ userName:'',
+ remark:'',
+ uuid:'',
+ },
+ tittle:'',
+ row:'',
+ checked:false,
+ newUserCode:[],
+ options: [], // 模块
+ userOption:'',//获取用户
+ dataListLoading: false,
+ dataRule: {
+ userCode: [
+ {required: true, message: 'UID不能为空', trigger: 'blur'}
+ ],
+ remark: [
+ {required: true, message: '备注不能为空', trigger: 'blur'}
+ ],
+ },
+ // 关联数据
+ card: {
+ id: 0,
+ pic: '',
+ name: '',
+ realData: {
+ prod: [],
+ shop: [],
+ activity: []
+ }
+ },
+ page: {
+ total: 0, // 总页数
+ currentPage: 1, // 当前页数
+ pageSize: 10 // 每页显示多少条
+ },
+ prodsSelectVisible: false,
+ visible: false
+ }
+ },
+ components: {
+ PicUpload,
+ ProdsSelect
+ },
+ methods: {
+ // 获取分类数据
+ init (arr,row,user) {
+ this.options = arr
+ this.row = row || ''
+ this.userOption = user || ''
+ if(row){
+ this.dataForm.remark = row.remark
+ this.dataForm.uuid = row.uuid
+ this.dataForm.userCode = row.userCode
+ this.dataForm.userName = row.userName
+ this.options.value = row.type
+ this.tittle = '修改'
+ }else if(user){
+ this.newUserCode = this.userOption.map(item => item.userCode);
+ this.tittle = '批量新增'
+ this.options.value = this.options[0].value
+ } else {
+ this.tittle = '新增'
+ this.options.value = this.options[0].value
+ }
+ this.visible = true
+ // if (this.dataForm.imgId) {
+ // // 获取产品数据
+ // this.$http({
+ // url: this.$http.adornUrl(`/admin/indexImg/info/${this.dataForm.imgId}`),
+ // method: 'get',
+ // params: this.$http.adornParams()
+ // }).then(({ data }) => {
+ // this.dataForm = data
+ // if (data.relation) {
+ // this.card.pic = data.pic
+ // this.card.name = data.prodName
+ // this.card.id = data.relation
+ // }
+ // })
+ // } else {
+ // this.$nextTick(() => {
+ // this.$refs['dataForm'].resetFields()
+ // this.dataForm.imgUrl = ''
+ // this.relation = null
+ // })
+ // }
+ },
+ // 表单提交
+ dataFormSubmit: Debounce(function () {
+ if(this.row){ // 修改
+ this.$refs['dataForm'].validate((valid) => {
+ if (!valid) {
+ return
+ }
+ this.$http({
+ url: this.$http.adornUrl(`/normal/adminProfitAndLossConfigAction!/update.action`),
+ method:'post',
+ data: this.$http.adornData({
+ remark:this.dataForm.remark,
+ type:this.options.value,
+ uuid:this.dataForm.uuid,
+ symbolType: "US-stocks", //forex->外汇,commodities->大宗商品,指数/ETF->indices, A-stocks->A股, HK-stocks->港股.US-stocks->美股,cryptos->虚拟货币
+ })
+ }).then(({ data }) => {
+ if(data.code==0){
+ this.$message({
+ message: '操作成功',
+ type: 'success',
+ duration: 1500,
+ onClose: () => {
+ this.visible = false
+ this.$emit('refreshDataList', this.page)
+ }
+ })
+ }else{
+ this.$message({
+ message: data.msg,
+ type: 'error',
+ duration: 1500,
+ onClose: () => {
+ }
+ })
+ }
+
+ })
+ })
+ }else if(this.userOption){ //批量新增
+ this.$refs['dataForm'].validate((valid) => {
+ if (!valid) {
+ return
+ }
+ this.dataListLoading = true
+ this.$http({
+ url: this.$http.adornUrl(`/normal/adminProfitAndLossConfigAction!/addBatch.action`),
+ method:'post',
+ data: this.$http.adornData({
+ remark:this.dataForm.remark,
+ type:this.options.value,
+ userCode:this.dataForm.userCode,
+ symbolType: "US-stocks", //forex->外汇,commodities->大宗商品,指数/ETF->indices, A-stocks->A股, HK-stocks->港股.US-stocks->美股,cryptos->虚拟货币
+ })
+ }).then(({ data }) => {
+ if(data.code==0){
+ this.dataListLoading = false
+ this.$message({
+ message: '操作成功',
+ type: 'success',
+ duration: 1500,
+ onClose: () => {
+ this.visible = false
+ this.$emit('refreshDataList', this.page)
+ }
+ })
+ }else{
+ this.dataListLoading = false
+ this.$message({
+ message: data.msg,
+ type: 'error',
+ duration: 1500,
+ onClose: () => {
+ }
+ })
+ }
+
+ })
+ })
+ } else{
+ this.$refs['dataForm'].validate((valid) => {
+ if (!valid) {
+ return
+ }
+ this.$http({
+ url: this.$http.adornUrl(`/normal/adminProfitAndLossConfigAction!/add.action`),
+ method:'post',
+ data: this.$http.adornData({
+ remark:this.dataForm.remark,
+ type:this.options.value,
+ userCode:this.dataForm.userCode,
+ symbolType: "US-stocks", //forex->外汇,commodities->大宗商品,指数/ETF->indices, A-stocks->A股, HK-stocks->港股.US-stocks->美股,cryptos->虚拟货币
+ })
+ }).then(({ data }) => {
+ if(data.code==0){
+ this.$message({
+ message: '操作成功',
+ type: 'success',
+ duration: 1500,
+ onClose: () => {
+ this.visible = false
+ this.$emit('refreshDataList', this.page)
+ }
+ })
+ }else{
+ this.$message({
+ message: data.msg,
+ type: 'error',
+ duration: 1500,
+ onClose: () => {
+ }
+ })
+ }
+
+ })
+ })
+ }
+
+ }),
+ handClose(){
+ this.$data.dataForm=JSON.parse(JSON.stringify(this.$options.data().dataForm))
+ this.checked = false
+ this.userOption = ''
+ this.$nextTick(() => {
+ this.$refs['dataForm'].clearValidate() // 清除表单验证
+ })
+ },
+ checkboxChanged() { //复选框 //newUserCode 全部的用户UID数组 //this.userOption全部的用户数组对象
+ if (this.checked) {
+ this.dataForm.userCode = this.newUserCode.join(",")
+ console.log(this.dataForm.userCode);
+ } else {
+ this.dataForm.userCode = ''
+ // 复选框被取消选中时的处理逻辑
+ console.log(this.dataForm.userCode);
+ }
+ },
+ // 删除关联数据
+ deleteRelation () {
+ this.dataForm.relation = null
+ },
+ // 打开选择商品
+ addProd () {
+ this.prodsSelectVisible = true
+ this.$nextTick(() => {
+ this.$refs.prodsSelect.init(this.card.realData.prod)
+ })
+ },
+ changeVal(val) {
+ this.$forceUpdate();
+ },
+ // 添加指定商品
+ selectCouponProds (prods) {
+ this.card.realData.prods = prods
+ if (prods.length) {
+ let selectProd = prods[0]
+ this.dataForm.relation = selectProd.prodId
+ this.card.pic = selectProd.pic
+ this.card.name = selectProd.prodName
+ this.card.id = selectProd.prodId
+ } else {
+ this.card = {}
+ this.relation = null
+ }
+ },
+ addShop () {
+ alert('选择店铺')
+ },
+ addActivity () {
+ alert('选择活动')
+ }
+ }
+}
+</script>
+<style lang="scss" scoped>
+//card样式
+.card-prod-bottom {
+ position: relative;
+ text-align: left;
+ .card-prod-name {
+ margin: auto;
+ padding: 0 6px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ width: 118px;
+ display: inline-block;
+ }
+ .card-prod-name-button {
+ position: absolute;
+ top: 24px;
+ right: 10px;
+ }
+}
+</style>
--
Gitblit v1.9.3