index.vue 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. <template>
  2. <div class="l_box box">
  3. <div class="l_top adfacjb">
  4. <div class="lt_l">{{item.alias||item.board||''}}</div>
  5. <div class="lt_r adfac">
  6. <image src="https://transcend.ringzle.com/xiaozhi-app/profile/2025/05/29/660f9a0f-8127-4575-81a2-3e1c2ae45841.png" v-if="item.state===1"></image>
  7. <image src="https://transcend.ringzle.com/xiaozhi-app/profile/2025/05/29/f2978646-aee1-4e86-8f36-c8dbb08d3ecb.png" v-else-if="item.state===0"></image>
  8. <image src="https://transcend.ringzle.com/xiaozhi-app/profile/2025/05/29/d05d9fbf-61f4-486b-b954-efa2f49d8ac3.png" v-if="item.state===1"></image>
  9. <image src="https://transcend.ringzle.com/xiaozhi-app/profile/2025/05/29/ea72f9c1-6ded-48d3-b4fb-e692b7b7881e.png" v-else-if="item.state===0"></image>
  10. <div class="ltr_zt" :class="{'zx':item.state===1,'lx':item.state===0}">{{item.state===1?'在线':'离线'}}</div>
  11. </div>
  12. </div>
  13. <div class="l_content">
  14. <div class="lc_role adfac">
  15. <image class="lcr_l" src="https://transcend.ringzle.com/xiaozhi-app/profile/2025/05/29/24380873-b8d7-413c-8d9d-d997fe13685d.png"></image>
  16. <div class="lcr_r">
  17. <p>{{item.agent.agentName||''}}</p>
  18. <div class="text">角色模板:{{item.roleModelName||''}}</div>
  19. <div class="text">绑定时间:{{item.createDate||''}}</div>
  20. </div>
  21. </div>
  22. <div class="lc_info" v-if="showInfo">
  23. <u--text :lines="3" :text="item.agent.systemPrompt||''" size="24rpx" color="#7C8592" lineHeight="40rpx"></u--text>
  24. </div>
  25. <div class="lc_btns adfac">
  26. <!-- <div class="lcb_pre" @tap="editRole(item)">角色编辑</div> -->
  27. <div class="lcb_pre" @tap="dislogRecord(item)">对话记录</div>
  28. <div class="lcb_pre" @tap="changeWifi(item)">配置网络</div>
  29. <div class="lcb_pre" @tap="unbindDevice(item)">解绑设备</div>
  30. </div>
  31. </div>
  32. </div>
  33. </template>
  34. <script>
  35. export default {
  36. props:{
  37. item:{
  38. typeof:Object
  39. },
  40. showInfo:{
  41. typeof:Boolean,
  42. default:false
  43. }
  44. },
  45. data(){
  46. return {
  47. }
  48. },
  49. methods:{
  50. dislogRecord(item){
  51. uni.navigateTo({
  52. url:`/pagesHome/dialogRecord?agentId=${item.agentId}&deviceId=${item.id}`
  53. })
  54. },
  55. editRole(item){
  56. this.$emit('editRole');
  57. uni.navigateTo({
  58. url:`/pagesRole/addRole?agentId=${item.agentId}&deviceId=${item.id}`
  59. })
  60. },
  61. changeWifi(item){
  62. uni.navigateTo({
  63. url:'/pagesMy/wifi'
  64. })
  65. },
  66. unbindDevice(item){
  67. uni.showModal({
  68. title:'温馨提示',
  69. content:'确定要解绑该设备吗?',
  70. success: (res) => {
  71. if(res.confirm){
  72. this.$api.post('/device/unbind',{deviceId:item.id}).then(res=>{
  73. if(res.data.code!==0) return this.$showToast(res.data.msg)
  74. this.$showToast('解绑成功');
  75. setTimeout(()=>{
  76. this.$emit('unbindSuccess')
  77. },1000)
  78. })
  79. }
  80. }
  81. })
  82. }
  83. }
  84. }
  85. </script>
  86. <style scoped lang="less">
  87. .box{
  88. position: relative;
  89. width: calc(100% - 60rpx);
  90. background: #FFFFFF;
  91. box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(0,0,0,0.04);
  92. border-radius: 32rpx;
  93. border: 1rpx solid #D9F159;
  94. box-sizing: border-box;
  95. }
  96. .l_box{
  97. width: 100%;
  98. padding: 49rpx 30rpx 40rpx;
  99. margin-top: 20rpx;
  100. .l_top{
  101. .lt_l{
  102. font-family: PingFang-SC, PingFang-SC;
  103. font-weight: bold;
  104. font-size: 32rpx;
  105. color: #111111;
  106. line-height: 40rpx;
  107. }
  108. .lt_r{
  109. image{
  110. width: 42rpx;
  111. height: 42rpx;
  112. margin-right: 34rpx;
  113. }
  114. .ltr_zt{
  115. font-family: PingFangSC, PingFang SC;
  116. font-weight: 400;
  117. font-size: 26rpx;
  118. line-height: 37rpx;
  119. padding-left: 22rpx;
  120. position: relative;
  121. &::before{
  122. content: '';
  123. width: 12rpx;
  124. height: 12rpx;
  125. border-radius: 50%;
  126. position: absolute;
  127. left: 0;
  128. top: 50%;
  129. margin-top: -6rpx;
  130. }
  131. &.zx{
  132. color: #1B50FF;
  133. &::before{
  134. background: #1B50FF;
  135. }
  136. }
  137. &.lx{
  138. color: #C7C7C7;
  139. &::before{
  140. background: #C7C7C7;
  141. }
  142. }
  143. }
  144. }
  145. }
  146. .l_content{
  147. border-top: 1rpx solid #E2E2E2;
  148. margin-top: 37rpx;
  149. padding-top: 36rpx;
  150. overflow: hidden;
  151. .lc_role{
  152. .lcr_l{
  153. width: 148rpx;
  154. height: 148rpx;
  155. border-radius: 50%;
  156. }
  157. .lcr_r{
  158. width: calc(100% - 148rpx);
  159. padding-left: 30rpx;
  160. box-sizing: border-box;
  161. p{
  162. font-family: PingFang-SC, PingFang-SC;
  163. font-weight: bold;
  164. font-size: 32rpx;
  165. color: #111111;
  166. line-height: 32rpx;
  167. overflow: hidden;
  168. white-space: nowrap;
  169. text-overflow: ellipsis;
  170. }
  171. .text{
  172. font-family: PingFangSC, PingFang SC;
  173. font-weight: 400;
  174. font-size: 24rpx;
  175. color: #7C8592;
  176. line-height: 24rpx;
  177. margin-top: 24rpx;
  178. }
  179. }
  180. }
  181. .lc_info{
  182. margin-top: 36rpx;
  183. font-family: PingFangSC, PingFang SC;
  184. font-weight: 400;
  185. font-size: 24rpx;
  186. color: #7C8592;
  187. line-height: 40rpx;
  188. }
  189. .lc_btns{
  190. margin-top: 62rpx;
  191. margin-left: -1rpx;
  192. overflow: hidden;
  193. .lcb_pre{
  194. width: calc(100% / 3);
  195. height: 37rpx;
  196. border-left: 1rpx solid #72832B;
  197. font-family: PingFang-SC, PingFang-SC;
  198. font-weight: bold;
  199. font-size: 26rpx;
  200. color: #72832B;
  201. line-height: 37rpx;
  202. text-align: center;
  203. }
  204. }
  205. }
  206. }
  207. </style>