import {
  _configurationLoadAll,
  _configurationLoad,
  _getdatabaseidconfig,
  _configurationDataview,
  _configurationAdd,
  _configurationDel,
  _configurationUp,
  _attachmenLoad,
  _attachmentDataview,
  _attachmentAddtoid,
  _attachmentAddtoPath,
  _attachmentDel,
  _attachmentUp,
  _attachmentAddimg,
} from '@/api/base'

import { _list, _view, _export, _add, _adds, _up, _ups, _del } from '@/api/app'
import useDictStore from '@store/modules/dict'
import { _addimg } from '@/api/app'
// import { getCookie } from '@/utils/auth'
import { reformateObjectRes } from '@/utils/index'

const useBaseStore = defineStore('base', {
  state: () => ({
    // fileHeadUrl: getCookie('fileHeadUrl')
  }),
  actions: {
    //* *********** 配置 **************
    // 获取所有数据库配置
    configurationLoadAll(data) {
      return new Promise((resolve, reject) => {
        // data.showfield = 'id,baseid,groupname,title,substance,available,describes,ispublic'
        _configurationLoadAll(data)
          .then((res) => {
            resolve(res.Data)
          })
          .catch((err) => {
            reject(err)
          })
      })
    },
    // 按组(groupname)获取组数据库配置
    configurationLoad({ groupname, title }) {
      return new Promise((resolve, reject) => {
        const data = { name: groupname }
        if (title) data.title = title
        _configurationLoad(data)
          .then((res) => {
            resolve(res.Data)
          })
          .catch((err) => {
            reject(err)
          })
      })
    },
    // 按组(baseid)获取组数据库配置
    getdatabaseidconfig({ baseid }) {
      return new Promise((resolve, reject) => {
        _getdatabaseidconfig({ baseid })
          .then((res) => {
            resolve(res.Data)
          })
          .catch((err) => {
            reject(err)
          })
      })
    },
    // 查看配置数据单条数据
    configurationDataview(data) {
      // data.showfield = 'id,title,substance,groupname,baseid,describes,ispublic'
      // return new Promise((resolve, reject) => {
      //   _configurationDataview(data)
      //     .then((res) => {
      //       resolve(reformateObjectRes(res.Data))
      //     })
      //     .catch((err) => {
      //       reject(err)
      //     })
      // })
      return new Promise((resolve, reject) => {
        data.pagevalue = 168
        _view(data)
          .then((res) => {
            resolve(reformateObjectRes(res.Data))
          })
          .catch((err) => {
            reject(err)
          })
      })
    },
    // 添加配置数据
    configurationAdd(data) {
      return new Promise((resolve, reject) => {
        data.pagevalue = 171
        _add(data)
          .then((res) => {
            resolve(reformateObjectRes(res.Data))
          })
          .catch((err) => {
            reject(err)
          })
      })
    },
    // 删除配置数据
    configurationDel(data) {
      return new Promise((resolve, reject) => {
        data.pagevalue = 170
        _del(data)
          .then((res) => {
            resolve(reformateObjectRes(res.Data))
          })
          .catch((err) => {
            reject(err)
          })
      })
    },
    // 更新配置数据
    configurationUp(data) {
      return new Promise((resolve, reject) => {
        data.pagevalue = 169
        _up(data)
          .then((res) => {
            resolve(reformateObjectRes(res.Data))
          })
          .catch((err) => {
            reject(err)
          })
      })
    },
    //* *********** 附件记录 **************
    // 获取附件记录数据列表
    attachmenLoad(data) {
      return new Promise((resolve, reject) => {
        data.pagevalue = 85
        const filepath = useDictStore().getDict('filepath')
        const fileHeadUrl = useDictStore().getDict('fileheadurl')
        _list(data)
          .then((res) => {
            if (res.Data.Data.length) {
              res.Data.Data.map((item) => {
                // item.url = fileHeadUrl[0].substance + filepath[0].substance + item.attpath + item.attname + '.' + item.atttype
                item.url = fileHeadUrl[0].substance + item.attpath + item.attname + '.' + item.atttype
              })
              resolve(res.Data)
            } else {
              resolve(res.Data)
            }
          })
          .catch((err) => {
            reject(err)
          })
      })
    },
    // 查看附件记录单条数据
    attachmentDataview(data) {
      return new Promise((resolve, reject) => {
        _attachmentDataview(data)
          .then((res) => {
            resolve(res)
          })
          .catch((err) => {
            reject(err)
          })
      })
    },
    // 添加附件记录并返回id
    attachmentAddtoid(data) {
      return new Promise((resolve, reject) => {
        _attachmentAddtoid(data)
          .then((res) => {
            resolve(res)
          })
          .catch((err) => {
            reject(err)
          })
      })
    },
    // 添加附件记录并返回路径
    attachmentAddtoPath(data) {
      return new Promise((resolve, reject) => {
        _attachmentAddtoPath(data)
          .then((res) => {
            resolve(res)
          })
          .catch((err) => {
            reject(err)
          })
      })
    },
    // 添加图片并返回id
    addimg(data) {
      return new Promise((resolve, reject) => {
        _addimg(data)
          .then((res) => {
            resolve(res)
          })
          .catch((err) => {
            reject(err)
          })
      })
    },
    // 删除附件记录
    attachmentDel(data) {
      return new Promise((resolve, reject) => {
        _attachmentDel(data)
          .then((res) => {
            resolve(res)
          })
          .catch((err) => {
            reject(err)
          })
      })
    },
    // 更新附件记录
    attachmentUp(data) {
      return new Promise((resolve, reject) => {
        _attachmentUp(data)
          .then((res) => {
            resolve(res)
          })
          .catch((err) => {
            reject(err)
          })
      })
    },
  },
})

export default useBaseStore
