Browse Source

添加站点逻辑删除

zhangqiang 9 months ago
parent
commit
d62b03342d

+ 8 - 7
jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/okki/site/controller/ShopApiController.java

@@ -3,9 +3,10 @@ package org.jeecg.modules.okki.site.controller;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.http.HttpHeaders;
 import org.jeecg.common.api.vo.Result;
-import org.jeecg.modules.okki.site.service.IOkkiSiteService;
 import org.jeecg.modules.okki.site.entity.OkkiSite;
 import org.jeecg.modules.okki.site.param.ChangeSiteStatusParam;
+import org.jeecg.modules.okki.site.param.OkkiSiteParam;
+import org.jeecg.modules.okki.site.service.IOkkiSiteService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 /**
@@ -23,14 +24,14 @@ public class ShopApiController {
     private IOkkiSiteService okkiSiteService;
 
     @PostMapping(value = "/add")
-    public Result<String> add(@RequestBody OkkiSite okkiSite, @RequestHeader(HttpHeaders.AUTHORIZATION) String authorization) {
-        log.info("请求参数 param" + okkiSite.toString() + "authorization" + authorization);
+    public Result<String> add(@RequestBody OkkiSiteParam okkiSiteParam, @RequestHeader(HttpHeaders.AUTHORIZATION) String authorization) {
+        log.info("请求参数 param" + okkiSiteParam.toString() + "authorization" + authorization);
         String Authorization = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImRlYW4iLCJleHAiOjE3MTQ0NjU5Njl9.QdCBYR8mioXcKGi1n5RdMQ5RbJHCSGbE8dkdwYuOXh4";
         if (!authorization.equals(Authorization)) {
             return Result.error("sign 验证不通过");
         }
         // 如果站点id已存在 则提示信息
-        boolean result = okkiSiteService.insertSite(okkiSite);
+        boolean result = okkiSiteService.insertSite(okkiSiteParam);
         log.info("请求成功,返回结果" + result);
         if (result) {
             return Result.OK("添加成功!");
@@ -40,13 +41,13 @@ public class ShopApiController {
     }
 
     @PostMapping(value = "/edit")
-    public Result<String> edit(@RequestBody OkkiSite okkiSite, @RequestHeader(HttpHeaders.AUTHORIZATION) String authorization) {
-        log.info("请求参数 param" + okkiSite.toString() + "authorization" + authorization);
+    public Result<String> edit(@RequestBody OkkiSiteParam okkiSiteParam, @RequestHeader(HttpHeaders.AUTHORIZATION) String authorization) {
+        log.info("请求参数 param" + okkiSiteParam.toString() + "authorization" + authorization);
         String Authorization = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImRlYW4iLCJleHAiOjE3MTQ0NjU5Njl9.QdCBYR8mioXcKGi1n5RdMQ5RbJHCSGbE8dkdwYuOXh4";
         if (!authorization.equals(Authorization)) {
             return Result.error("sign 验证不通过");
         }
-        boolean result = okkiSiteService.updateBySiteId(okkiSite);
+        boolean result = okkiSiteService.updateBySiteId(okkiSiteParam);
         log.info("请求成功,返回结果" + result);
         if (result) {
             return Result.OK("编辑成功!");

+ 16 - 11
jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/okki/site/entity/OkkiSite.java

@@ -51,56 +51,56 @@ public class OkkiSite implements Serializable {
 	/**站点id*/
 	@Excel(name = "站点id", width = 15)
     @ApiModelProperty(value = "站点id")
-    private Integer site_id;
+    private Integer siteId;
 	/**公司名称*/
 	@Excel(name = "公司名称", width = 15)
     @ApiModelProperty(value = "公司名称")
     @TableField(updateStrategy = FieldStrategy.NOT_EMPTY)
-    private String company_name = "";
+    private String companyName;
 	/**初始化的域名*/
 	@Excel(name = "初始化的域名", width = 15)
     @ApiModelProperty(value = "初始化的域名")
     @TableField(updateStrategy = FieldStrategy.NOT_EMPTY)
-    private String domain = "";
+    private String domain;
 	/**联系方式*/
 	@Excel(name = "联系方式", width = 15)
     @ApiModelProperty(value = "联系方式")
     @TableField(updateStrategy = FieldStrategy.NOT_EMPTY)
-    private String tel = "";
+    private String tel;
 	/**联系人*/
 	@Excel(name = "联系人", width = 15)
     @ApiModelProperty(value = "联系人")
     @TableField(updateStrategy = FieldStrategy.NOT_EMPTY)
-    private String contact = "";
+    private String contact;
 	/**邮箱*/
 	@Excel(name = "邮箱", width = 15)
     @ApiModelProperty(value = "邮箱")
     @TableField(updateStrategy = FieldStrategy.NOT_EMPTY)
-    private String email = "";
+    private String email;
 	/**公司名英⽂简称*/
 	@Excel(name = "公司名英⽂简称", width = 15)
     @ApiModelProperty(value = "公司名英⽂简称")
     @TableField(updateStrategy = FieldStrategy.NOT_EMPTY)
-    private String enname = "";
+    private String enname;
 	/**套餐名*/
 	@Excel(name = "套餐名", width = 15)
     @ApiModelProperty(value = "套餐名")
     @TableField(updateStrategy = FieldStrategy.NOT_EMPTY)
-    private String tc_name = "OKKI Shops Smart(2023)";
+    private String tcName;
 	/**套餐周期,单位⽉*/
 	@Excel(name = "套餐周期,单位⽉", width = 15)
     @ApiModelProperty(value = "套餐周期,单位⽉")
     @TableField(updateStrategy = FieldStrategy.NOT_EMPTY)
-    private Integer tc_period = 12;
+    private Integer tcPeriod;
 	/**站点选择的⼩语种语⾔*/
 	@Excel(name = "站点选择的⼩语种语⾔", width = 15)
     @ApiModelProperty(value = "站点选择的⼩语种语⾔")
-    private String tc_language = "";
+    private String tcLanguage;
 	/**备注*/
 	@Excel(name = "备注", width = 15)
     @ApiModelProperty(value = "备注")
     @TableField(updateStrategy = FieldStrategy.NOT_EMPTY)
-    private String remark = "";
+    private String remark;
     /**状态*/
     @Excel(name = "状态", width = 15, dicCode = "site_status")
     @Dict(dicCode = "site_status")
@@ -115,4 +115,9 @@ public class OkkiSite implements Serializable {
     @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
     @ApiModelProperty(value = "所属人员")
     private java.lang.String sysUserCode;
+    /**
+     * 删除状态(0,正常,1已删除)
+     */
+    @TableLogic
+    private java.lang.Integer delFlag;
 }

+ 33 - 0
jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/okki/site/param/OkkiSiteParam.java

@@ -0,0 +1,33 @@
+package org.jeecg.modules.okki.site.param;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class OkkiSiteParam implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**站点id*/
+    private Integer site_id;
+    /**公司名称*/
+    private String company_name = "";
+    /**初始化的域名*/
+    private String domain = "";
+    /**联系方式*/
+    private String tel = "";
+    /**联系人*/
+    private String contact = "";
+    /**邮箱*/
+    private String email = "";
+    /**公司名英⽂简称*/
+    private String enname = "";
+    /**套餐名*/
+    private String tc_name = "OKKI Shops Smart(2023)";
+    /**套餐周期,单位⽉*/
+    private Integer tc_period = 12;
+    /**站点选择的⼩语种语⾔*/
+    private String tc_language = "";
+    /**备注*/
+    private String remark = "";
+}

+ 3 - 2
jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/okki/site/service/IOkkiSiteService.java

@@ -3,6 +3,7 @@ package org.jeecg.modules.okki.site.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.okki.site.entity.OkkiSite;
 import org.jeecg.modules.okki.site.param.ChangeSiteStatusParam;
+import org.jeecg.modules.okki.site.param.OkkiSiteParam;
 
 /**
  * @Description: 站点
@@ -12,11 +13,11 @@ import org.jeecg.modules.okki.site.param.ChangeSiteStatusParam;
  */
 public interface IOkkiSiteService extends IService<OkkiSite> {
 
-    boolean updateBySiteId(OkkiSite okkiSite);
+    boolean updateBySiteId(OkkiSiteParam okkiSiteParam);
 
     boolean changeStatus(OkkiSite okkiSite);
 
     boolean okkiChangeStatus(ChangeSiteStatusParam param);
 
-    boolean insertSite(OkkiSite okkiSite);
+    boolean insertSite(OkkiSiteParam okkiSiteParam);
 }

+ 37 - 18
jeecg-boot/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/okki/site/service/impl/OkkiSiteServiceImpl.java

@@ -9,6 +9,7 @@ import org.jeecg.modules.okki.site.entity.OkkiSite;
 import org.jeecg.modules.okki.site.entity.OkkiSiteStatusChangeLog;
 import org.jeecg.modules.okki.site.mapper.OkkiSiteMapper;
 import org.jeecg.modules.okki.site.param.ChangeSiteStatusParam;
+import org.jeecg.modules.okki.site.param.OkkiSiteParam;
 import org.jeecg.modules.okki.site.service.IOkkiSiteService;
 import org.jeecg.modules.okki.site.service.IOkkiSiteStatusChangeLogService;
 import org.jeecg.modules.okki.utils.HttpClientUtils;
@@ -43,12 +44,21 @@ public class OkkiSiteServiceImpl extends ServiceImpl<OkkiSiteMapper, OkkiSite> i
     private IOkkiSiteStatusChangeLogService okkiSiteStatusChangeLogService;
 
     @Override
-    public boolean updateBySiteId(OkkiSite okkiSite) {
+    public boolean updateBySiteId(OkkiSiteParam okkiSiteParam) {
         QueryWrapper<OkkiSite> okkiSiteQueryWrapper = new QueryWrapper<>();
-        okkiSiteQueryWrapper.eq("site_id", okkiSite.getSite_id());
+        okkiSiteQueryWrapper.eq("site_id", okkiSiteParam.getSite_id());
         okkiSiteQueryWrapper.last("limit 1");
-        OkkiSite okkiSite1 = okkiSiteMapper.selectOne(okkiSiteQueryWrapper);
-        okkiSite.setId(okkiSite1.getId());
+        OkkiSite okkiSite = okkiSiteMapper.selectOne(okkiSiteQueryWrapper);
+        okkiSite.setCompanyName(okkiSiteParam.getCompany_name());
+        okkiSite.setDomain(okkiSiteParam.getDomain());
+        okkiSite.setTel(okkiSiteParam.getTel());
+        okkiSite.setContact(okkiSiteParam.getContact());
+        okkiSite.setEmail(okkiSiteParam.getEmail());
+        okkiSite.setEnname(okkiSiteParam.getEnname());
+        okkiSite.setTcName(okkiSiteParam.getTc_name());
+        okkiSite.setTcPeriod(okkiSiteParam.getTc_period());
+        okkiSite.setTcLanguage(okkiSiteParam.getTc_language());
+        okkiSite.setRemark(okkiSiteParam.getRemark());
         int result = okkiSiteMapper.updateById(okkiSite);
         if (result == 0) {
             return false;
@@ -59,21 +69,18 @@ public class OkkiSiteServiceImpl extends ServiceImpl<OkkiSiteMapper, OkkiSite> i
 
     @Override
     public boolean changeStatus(OkkiSite okkiSite) {
+        OkkiSite okkiSite1 = okkiSiteMapper.selectById(okkiSite.getId());
         // 请求okki平台接口
         Map<String, String> query = new TreeMap<>();
         query.put("sign_method", "hmac-md5");
         query.put("timestamp", String.valueOf(System.currentTimeMillis()));
-        query.put("site_id", String.valueOf(okkiSite.getSite_id()));
+        query.put("site_id", String.valueOf(okkiSite1.getSiteId()));
         query.put("method", "update_service_node");
         // 通过site_id获取当前站点数据status的值 +1
-        QueryWrapper<OkkiSite> okkiSiteQueryWrapper = new QueryWrapper<>();
-        okkiSiteQueryWrapper.eq("site_id", okkiSite.getSite_id());
-        okkiSiteQueryWrapper.last("limit 1");
-        OkkiSite okkiSite1 = okkiSiteMapper.selectOne(okkiSiteQueryWrapper);
-        okkiSite.setId(okkiSite1.getId());
-        okkiSite.setStatus(okkiSite1.getStatus()+1);
+
+        okkiSite1.setStatus(okkiSite1.getStatus()+1);
         Map<String, Object> postData = new HashMap<>();
-        postData.put("status", okkiSite1.getStatus()+1);
+        postData.put("status", okkiSite1.getStatus());
         try {
             String queryStr = HttpClientUtils.buildQueryString(query);
             String body = HttpClientUtils.toJsonString(postData);
@@ -86,14 +93,14 @@ public class OkkiSiteServiceImpl extends ServiceImpl<OkkiSiteMapper, OkkiSite> i
             // {"code":0,"msg":"success","now":"2024-05-06 15:34:54","data":[]}
             JSONObject jsonObject= JSONObject.parseObject(res);
             if (jsonObject.get("code").equals(0)) {
-                int result = okkiSiteMapper.updateById(okkiSite);
+                int result = okkiSiteMapper.updateById(okkiSite1);
                 if (result == 0) {
                     return false;
                 }else {
                     OkkiSiteStatusChangeLog okkiSiteStatusChangeLog = new OkkiSiteStatusChangeLog();
-                    okkiSiteStatusChangeLog.setOkkiSiteId(okkiSite.getSite_id());
-                    okkiSiteStatusChangeLog.setOldStatus(okkiSite1.getStatus());
-                    okkiSiteStatusChangeLog.setNewStatus(okkiSite.getStatus());
+                    okkiSiteStatusChangeLog.setOkkiSiteId(okkiSite.getSiteId());
+                    okkiSiteStatusChangeLog.setOldStatus(okkiSite1.getStatus() - 1);
+                    okkiSiteStatusChangeLog.setNewStatus(okkiSite1.getStatus());
                     okkiSiteStatusChangeLogService.save(okkiSiteStatusChangeLog);
                     return true;
                 }
@@ -128,11 +135,23 @@ public class OkkiSiteServiceImpl extends ServiceImpl<OkkiSiteMapper, OkkiSite> i
     }
 
     @Override
-    public boolean insertSite(OkkiSite okkiSite) {
-        OkkiSite okkiSite1 = okkiSiteMapper.selectOne(new LambdaQueryWrapper<OkkiSite>().eq(OkkiSite::getSite_id, okkiSite.getSite_id()));
+    public boolean insertSite(OkkiSiteParam okkiSiteParam) {
+        OkkiSite okkiSite1 = okkiSiteMapper.selectOne(new LambdaQueryWrapper<OkkiSite>().eq(OkkiSite::getSiteId, okkiSiteParam.getSite_id()));
         if (okkiSite1 != null) {
             throw new RuntimeException("site_id already exist");
         }else {
+            OkkiSite okkiSite = new OkkiSite();
+            okkiSite.setSiteId(okkiSiteParam.getSite_id());
+            okkiSite.setCompanyName(okkiSiteParam.getCompany_name());
+            okkiSite.setDomain(okkiSiteParam.getDomain());
+            okkiSite.setTel(okkiSiteParam.getTel());
+            okkiSite.setContact(okkiSiteParam.getContact());
+            okkiSite.setEmail(okkiSiteParam.getEmail());
+            okkiSite.setEnname(okkiSiteParam.getEnname());
+            okkiSite.setTcName(okkiSiteParam.getTc_name());
+            okkiSite.setTcPeriod(okkiSiteParam.getTc_period());
+            okkiSite.setTcLanguage(okkiSiteParam.getTc_language());
+            okkiSite.setRemark(okkiSiteParam.getRemark());
             return super.save(okkiSite);
         }
     }

+ 2 - 0
jeecg-boot/jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml

@@ -187,6 +187,8 @@ mybatis-plus:
       id-type: ASSIGN_ID
       # 默认数据库表下划线命名
       table-underline: true
+      logic-delete-value: 1 # 逻辑已删除值(默认为 1)
+      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
   configuration:
     # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
     #log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

+ 2 - 0
jeecg-boot/jeecg-module-system/jeecg-system-start/src/main/resources/application-test.yml

@@ -185,6 +185,8 @@ mybatis-plus:
       id-type: ASSIGN_ID
       # 默认数据库表下划线命名
       table-underline: true
+      logic-delete-value: 1 # 逻辑已删除值(默认为 1)
+      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
   configuration:
     # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
     #log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

+ 10 - 0
jeecgboot-vue3/src/views/okki/site/OkkiSite.api.ts

@@ -7,6 +7,7 @@ enum Api {
   list = '/site/okkiSite/list',
   save='/site/okkiSite/add',
   edit='/site/okkiSite/edit',
+  updateStatus = '/site/okkiSite/status',
   deleteOne = '/site/okkiSite/delete',
   deleteBatch = '/site/okkiSite/deleteBatch',
   importExcel = '/site/okkiSite/importExcel',
@@ -29,6 +30,15 @@ export const list = (params) =>
   defHttp.get({url: Api.list, params});
 
 /**
+ * 修改状态
+ */
+export const updateStatus = (params,handleSuccess) => {
+  return defHttp.post({url: Api.updateStatus, params}, {joinParamsToUrl: true}).then(() => {
+    handleSuccess();
+  });
+}
+
+/**
  * 删除单个
  */
 export const deleteOne = (params,handleSuccess) => {

+ 31 - 80
jeecgboot-vue3/src/views/okki/site/OkkiSite.data.ts

@@ -15,6 +15,11 @@ export const columns: BasicColumn[] = [
     dataIndex: 'companyName'
    },
    {
+    title: '状态',
+    align:"center",
+    dataIndex: 'status_dictText'
+   },
+   {
     title: '初始化的域名',
     align:"center",
     dataIndex: 'domain'
@@ -60,14 +65,14 @@ export const columns: BasicColumn[] = [
     dataIndex: 'remark'
    },
    {
-    title: '状态',
+    title: '所属部门',
     align:"center",
-    dataIndex: 'status_dictText'
+    dataIndex: 'sysOrgCode_dictText'
    },
    {
-    title: '数据授权用户',
+    title: '所属人员',
     align:"center",
-    dataIndex: 'userIds_dictText'
+    dataIndex: 'sysUserCode_dictText'
    },
 ];
 //查询数据
@@ -76,74 +81,19 @@ export const searchFormSchema: FormSchema[] = [
 //表单数据
 export const formSchema: FormSchema[] = [
   {
-    label: '站点id',
-    field: 'siteId',
-    component: 'InputNumber',
-  },
-  {
-    label: '公司名称',
-    field: 'companyName',
-    component: 'Input',
-  },
-  {
-    label: '初始化的域名',
-    field: 'domain',
-    component: 'Input',
-  },
-  {
-    label: '联系方式',
-    field: 'tel',
-    component: 'Input',
-  },
-  {
-    label: '联系人',
-    field: 'contact',
-    component: 'Input',
-  },
-  {
-    label: '邮箱',
-    field: 'email',
-    component: 'Input',
-  },
-  {
-    label: '公司名英⽂简称',
-    field: 'enname',
-    component: 'Input',
-  },
-  {
-    label: '套餐名',
-    field: 'tcName',
-    component: 'Input',
-  },
-  {
-    label: '套餐周期,单位⽉',
-    field: 'tcPeriod',
-    component: 'InputNumber',
-  },
-  {
-    label: '站点选择的⼩语种语⾔',
-    field: 'tcLanguage',
-    component: 'Input',
-  },
-  {
-    label: '备注',
-    field: 'remark',
-    component: 'InputTextArea',
-  },
-  {
-    label: '状态',
-    field: 'status',
-    component: 'JDictSelectTag',
+    label: '所属部门',
+    field: 'sysOrgCode',
+    component: 'JSelectDept',
     componentProps:{
-        dictCode:"site_status"
-     },
+      rowKey:'orgCode',
+    },
   },
   {
-    label: '数据授权用户',
-    field: 'userIds',
-    component: 'JSelectMultiple',
+    label: '所属人员',
+    field: 'sysUserCode',
+    component: 'JSelectUser',
     componentProps:{
-        dictCode:"sys_user,realname,id"
+      labelKey:'realname',
      },
   },
 	// TODO 主键隐藏字段,目前写死为ID
@@ -159,17 +109,18 @@ export const formSchema: FormSchema[] = [
 export const superQuerySchema = {
   siteId: {title: '站点id',order: 0,view: 'number', type: 'number',},
   companyName: {title: '公司名称',order: 1,view: 'text', type: 'string',},
-  domain: {title: '初始化的域名',order: 2,view: 'text', type: 'string',},
-  tel: {title: '联系方式',order: 3,view: 'text', type: 'string',},
-  contact: {title: '联系人',order: 4,view: 'text', type: 'string',},
-  email: {title: '邮箱',order: 5,view: 'text', type: 'string',},
-  enname: {title: '公司名英⽂简称',order: 6,view: 'text', type: 'string',},
-  tcName: {title: '套餐名',order: 7,view: 'text', type: 'string',},
-  tcPeriod: {title: '套餐周期,单位⽉',order: 8,view: 'number', type: 'number',},
-  tcLanguage: {title: '站点选择的⼩语种语⾔',order: 9,view: 'text', type: 'string',},
-  remark: {title: '备注',order: 10,view: 'textarea', type: 'string',},
-  status: {title: '状态',order: 11,view: 'number', type: 'number',},
-  userIds: {title: '数据授权用户',order: 12,view: 'list_multi', type: 'string',dictTable: "sys_user", dictCode: 'id', dictText: 'realname',},
+  status: {title: '状态',order: 2,view: 'number', type: 'number',},
+  domain: {title: '初始化的域名',order: 3,view: 'text', type: 'string',},
+  tel: {title: '联系方式',order: 4,view: 'text', type: 'string',},
+  contact: {title: '联系人',order: 5,view: 'text', type: 'string',},
+  email: {title: '邮箱',order: 6,view: 'text', type: 'string',},
+  enname: {title: '公司名英⽂简称',order: 7,view: 'text', type: 'string',},
+  tcName: {title: '套餐名',order: 8,view: 'text', type: 'string',},
+  tcPeriod: {title: '套餐周期,单位⽉',order: 9,view: 'number', type: 'number',},
+  tcLanguage: {title: '站点选择的⼩语种语⾔',order: 10,view: 'text', type: 'string',},
+  remark: {title: '备注',order: 11,view: 'textarea', type: 'string',},
+  sysOrgCode: {title: '所属部门',order: 12,view: 'sel_depart', type: 'string',},
+  sysUserCode: {title: '所属人员',order: 13,view: 'sel_user', type: 'string',},
 };
 
 /**
@@ -179,4 +130,4 @@ export const superQuerySchema = {
 export function getBpmFormSchema(_formData): FormSchema[]{
   // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema
   return formSchema;
-}
+}

+ 76 - 14
jeecgboot-vue3/src/views/okki/site/OkkiSiteList.vue

@@ -43,7 +43,7 @@
   import { useListPage } from '/@/hooks/system/useListPage'
   import OkkiSiteModal from './components/OkkiSiteModal.vue'
   import {columns, searchFormSchema, superQuerySchema} from './OkkiSite.data';
-  import {list, deleteOne, batchDelete, getImportUrl,getExportUrl} from './OkkiSite.api';
+  import {list, updateStatus, deleteOne, batchDelete, getImportUrl,getExportUrl} from './OkkiSite.api';
   import { downloadFile } from '/@/utils/common/renderUtils';
   import { useUserStore } from '/@/store/modules/user';
   const queryParam = reactive<any>({});
@@ -130,6 +130,12 @@
        showFooter: false,
      });
    }
+  /**
+   * 修改状态事件
+   */
+  async function handleUpdateStatus(record) {
+    await updateStatus({id: record.id}, handleSuccess);
+  }
    /**
     * 删除事件
     */
@@ -163,19 +169,75 @@
         * 下拉操作栏
         */
   function getDropDownAction(record){
-       return [
-         {
-           label: '详情',
-           onClick: handleDetail.bind(null, record),
-         }, {
-           label: '删除',
-           popConfirm: {
-             title: '是否确认删除',
-             confirm: handleDelete.bind(null, record),
-             placement: 'topLeft',
-           }
-         }
-       ]
+    let statusList = [1,2,3,4,6,7,8,9,11];
+    if (statusList.includes(record.status)) {
+      let labelText = '';
+      switch (record.status) {
+        case 1:
+          labelText = '服务商启动服务';
+          break;
+        case 2:
+          labelText = '服务需求确定';
+          break;
+        case 3:
+          labelText = '站点样式推荐及确认';
+          break;
+        case 4:
+          labelText = '商家基础资料整理';
+          break;
+        case 6:
+          labelText = '商家产品资料准备';
+          break;
+        case 7:
+          labelText = '网站产品发布';
+          break;
+        case 8:
+          labelText = '网站质检及细节修改';
+          break;
+        case 9:
+          labelText = '装修完成';
+          break;
+        case 11:
+          labelText = 'SEO推广工作开始';
+          break;
+      }
+      return [
+        {
+          label: '详情',
+          onClick: handleDetail.bind(null, record),
+        },
+        {
+          label: labelText,
+          popConfirm: {
+            title: '是否确认'+labelText,
+            confirm: handleUpdateStatus.bind(null, record),
+            placement: 'topLeft',
+          }
+        },
+        {
+          label: '删除',
+          popConfirm: {
+            title: '是否确认删除',
+            confirm: handleDelete.bind(null, record),
+            placement: 'topLeft',
+          }
+        }
+      ]
+    } else {
+      return [
+        {
+          label: '详情',
+          onClick: handleDetail.bind(null, record),
+        }, {
+          label: '删除',
+          popConfirm: {
+            title: '是否确认删除',
+            confirm: handleDelete.bind(null, record),
+            placement: 'topLeft',
+          }
+        }
+      ]
+    }
    }